技术区
文章平均质量分 90
cfy_zybing
这个作者很懒,什么都没留下…
展开
-
202111项目总结:取MySQL UUID_SHORT后几位做流水号带来的重复问题
目录问题背景:问题爆发:分析原因及临时解决方法:分析原因临时解决方法:使用UUID_SHORT的一些其他限制或可能发生的问题:MySQL中的Sequence问题解决问题背景:老项目从Oracle --> MySQL,原来Oracle中有Sequence,而MySQL中没有。项目工期又很紧,得知MySQL有UUID_SHORT,就拿来用了;不过UUID_SHORT返回的位数太多,值太大,就取后10位作为流水号。问题爆发:不过在使用了1、2年后,系统突然..原创 2021-11-06 06:33:00 · 1097 阅读 · 0 评论 -
202109项目总结: MyBatis Cursor + Parallel Stream使用
最近刚完成一个项目,总结一下项目中使用到的新技术。可能这些技术已经推出很久很久了,可能很多人每天都在用的,但自己而言以前没使用过的,那就是新的技术;平时做项目,使用的不少技术,甚至很多代码都是从原有的老系统的代码中复制过来的,相当于一年经验用了3年,5年;因此从这次项目开始,写代码在原来的习惯上有所改变,每次都加入一些新东西;记录一下。这个项目现在还记得用的新技术有:1. MyBatis的Cursor2. stream中的parallelStream原创 2021-10-04 05:22:17 · 1938 阅读 · 0 评论 -
MySQL的varchar类型字段
业务变化,前端要求增加一个传输字段的长度,得到的一些mysql varchar字段的知识;目录varchar长度是字符长度,不是字节长度:VARCHAR的存储: VARCHAR的长度扩充--能不能快速varchar长度是字符长度,不是字节长度:现在使用的,应该都是 mysql5 以上的版本,所以才会说 varchar的长度是字符长度,不是字节长度;这个是mysql4到mysql5的变化,mysql4和以前版本,varchar是按照字节长度来算的;到了mysql5开始,按照字...原创 2020-07-13 20:00:05 · 715 阅读 · 0 评论 -
参数校验
目录简述:Spring的参数校验:程序基本框架:创建一个DTO对象:Controller程序:发起请求:打印结果:增加校验@Validated 注解:@Validated 和 @Valid 区别增加参数校验注解:java validation注解hibernate validation 注解在Bean上增加需要校验的设置自定义validation注解定义注解校验的实现简述: 对于后台系统来讲,在入口处进行参数校验是非常必要的,这..原创 2020-06-21 16:48:59 · 349 阅读 · 0 评论 -
MySQL字符集(表情包)
刚上mysql,经常发生前段传过来的内容入库发生异常,数据库报: java.sql.SQLException: Incorrect string value: ‘\xF0\x9F\x8C\xB8’ for column ‘mechant_name’ at row 1发现,数据库建表时候,用的是utf8字符集,传进来了表情包,表情包是4个字节的;通常情况,Mysql数据编码格式为“utf-8”,对于汉字来说足够;Mysql中utf8占3个字节,但是,3个字节对于表情符号是不够的,需4个字节;此时原创 2020-06-21 12:36:01 · 1314 阅读 · 0 评论 -
Docker实现原理
来源: “极客时间”:深入剖析K8S目录Namespace:Docker和虚拟机比较Docker核心技术容器核心技术: 通过约束和修改进程的动态表现,从而为其创造出一个“边界”;对于Docker等大多数Linux容器来说,Cgroups:用来制造约束 Namespace:用来修改进程视图 其实是Linux创建新进程的一个可选参数Namespace:Linux提供了多种NamespacePID: 进程ID,在当前Namespace中新创建的进程PID重新..原创 2020-05-29 17:49:51 · 485 阅读 · 0 评论 -
MySQL自增列id:插入的值大于id的自增值
从Oracle切换到阿里云; 云下的Oracle数据需要同步到Polardb(mysql8),云上的新系统(rds--mysql5.7)数据也要同步到PolarDB的同一张表里;rds库中,有自己的id自增列, 同步到polardb上使用rds自己生成的值(不使用polardb的id自增值);Oracle数据没有id列,通过Polardb的id自增列自动生成值;因此为了避免id冲突,将...原创 2020-04-29 10:56:45 · 586 阅读 · 0 评论 -
MySQL设置了useCursorFetch,FetchSize参数的影响
从MySQL中获取一定量的数据出来,如果不设置 useCursorFetch,mysql会把所有的数据从数据库端搬到客户端后再做处理,这样我们原先使用ResultHandler的方式节省内存的打算就落空了。还好MySQL在连接串上,使用了useCursorFetch=true,就可以达到将部分数据搬到客户端就进行处理,那么这时 FetchSize 对系统会产生什么影响;以下FetchSiz...原创 2020-04-28 19:16:37 · 8313 阅读 · 0 评论 -
MySQL数据库连接串的两个参数:rewriteBatchedStatements=true&useCursorFetch=true
最近在将数据库,从Oracle迁移到MySQL,遇到了不少数据库不同造成的问题,尤其是在批处理的时候,MySQL的表现和Oracle完全不一样,查了不少资料,问题解决了,除了程序部分,MySQL的数据库连接串上,要增加 useCursorFetch 和 rewriteBatchedStatements 参数useCursorFetch : 这个在前面的记录中已经写过,在查询大批量的数据时,My...原创 2020-04-27 16:17:03 · 4125 阅读 · 1 评论 -
Mybatis/MySQL的大数据量查询占用内存的问题
在这里先简单的记录一下,详细信息后续再不上;现在都流行Oracle切换成mysql,公司也在这么做,系统改好进行压测时,发现使用的内存比使用Oracle的程序要大很多;原来使用Oracle的时候,最初版本是一次性将查询结果,转换成List,然后一条条处理;随着数据量大,偶尔系统会爆出OOM,改变了使用方式,从一次性将查询结果转换成List,改成使用 ResultHandler的方式,...原创 2020-04-26 17:50:21 · 2515 阅读 · 0 评论 -
Struts2采用多配置文件
<br />也是多人开发时候的问题:<br /> <br />一种方式是使用include,在struts.xml中,包含多个配置进来;<br /> <br />但是开发是动态的,随时会插入一个模块进来,这样使用静态包含的方式就麻烦了,使用动态方式更合理。<br /> <br /><br />struts在启动的时候,会加载3个配置文件<br />1、struts-default.xml 它自代的<br />2、struts.xml 我们创建的<br />3、struts-plugin.xml 这是争对于原创 2010-11-24 09:43:00 · 322 阅读 · 0 评论 -
Spring中使用多配置文件
<br />在开发中,大家一起开发,这样使用到Spring的配置文件,最好自己是自己的,不要影响到别人的。<br /> <br />在Web.xml中,对Spring的配置这么写就可以了<br /> <br /><br /><context-param><br /> <param-name>contextConfigLocation</param-name><br /> <param-value>/WEB-INF/applicationContext-*.xml</param-value><br /><原创 2010-11-24 09:35:00 · 420 阅读 · 0 评论 -
Spring-Hibernate配置中,引用外部property文件
在Hibernate配置中,包含了一些数据库连接的设置,hbm.xml映射文件配置。到实际运行环境中,对于数据库连接这些,需要根据实际环境,由运行人员进行替换。如果让他们直接修改xml文件,担心会破坏文件结构,或者把文件弄乱。因此这些配置都放在外部的property文件中,在hibernate配置文件终能够进行引用。方法:如果是spring集成的hibernate,在spring配置文件中:这样就引入了配置文件 jdbc.proper原创 2010-11-24 09:23:00 · 1238 阅读 · 0 评论 -
使用KProf看gprof的结果
用gprof生成的结果,浏览结果比较复杂。 用KProf可以将gprof的结果,通过图形化的方式展现出来,这样比直接看文本方式的结果方便许多。转载 2009-06-02 13:14:00 · 1569 阅读 · 0 评论 -
通过gprof优化Linux下程序的性能
gprof是GNU profiler工具。可以显示程序运行的“flat profile”,包括每个函数的调用次数,每个函数消耗的处理器时间。也可以显示“调用图”,包括函数的调用关系,每个函数调用花费了多少时间。还可以显示“注释的源代码”,是程序源代码的一个复本,标记有程序中每行代码的执行次数。 为gprof编译程序 在编译或链接源程序的时候在编译器的命令行参数中加入"-转载 2009-05-25 10:15:00 · 993 阅读 · 0 评论