自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 MySQL innodb行锁加锁规则

利用隐藏字段roll_pointer、版本链、ReadView来实现的MVCC,可以很好地解决多个事务的并发【读+写】问题,但是如果在多个事务并发【写+写】的情况下,则需要用到锁了。MySQL提供了很多种锁:Server层实现了全局锁和元数据锁。数据引擎中,MyISAM、Memory等存储引擎实现了表锁(且只支持表锁),BerkeleyDB存储引擎实现了页级锁,InnoDB实现了行锁和表锁。平时最常用的就是InnoDB的行锁,所以在这里主要来探索一下InnoDB的行锁。

2024-02-18 17:18:36 1426

原创 Mysql的ACID(基于InnoDB)

事务必须被视为一个不可分割的最小操作单元,事务中的所有操作要么全部完成,要么全部不完成。如果出现错误,事务会被回滚到最初的状态,就像这个事务从未被执行过一样。:事务执行前后的数据库状态必须保持一致。事务的执行不能破坏数据库中的完整性约束,如唯一性约束、外键约束等。:事务的执行应相互隔离,即它们不能相互干扰。这意味着如果一个事务正在访问某个数据,另一个事务就不能同时访问这个数据,直到第一个事务完成并释放了对数据的锁定。:事务一旦提交,其对数据库的修改应该是永久性的,即使系统发生故障,数据也不会丢失。

2024-02-04 00:40:32 1064

原创 慢SQL治理方法论

本文介绍了慢SQL治理的方法论1. 发现:如何发现慢SQL2. 定位:如何定位到慢SQL出现在什么地方3. 分析:遇到慢SQL时的分析思路4. 解决:慢SQL的解决思路SQL优化本身是一个比较复杂的问题,上面所列举的,只是部份优化的案例,但所有优化的思路都是尽可能的减少SQL在执行中过程中扫描数据块的次数。

2024-01-26 11:29:09 1182

原创 记一次cms垃圾回收器频繁Major GC

计算可知:64M(硬件相关) * 2(核心相关) * 13 / 10 = 166.4,再做一下字节对齐就等于166.375M,所以我们2c8g的年轻代大小就不太合理,修改完成后Major GC频率降低至约每天一次。jmap查看内存对象,未发现内存泄漏行为,full gc后堆内存大小大部分被清理干净。因此怀疑是年轻代设置不合理,导致应该在young gc阶段被清理的对象,晋升到年老代。发现年轻代过小,与印象中的默认年轻代:年老代=1:2,有什么区别。jmap -heap pid 查看堆内存大小。

2024-01-25 16:51:09 301

原创 mybatis-generator DO类后缀名添加

当前mybatis-generator官方插件生成的DO类默认是按照表名生成,比如xxx_article,生成的DO类为XxxArticle,没有相应的DO后缀,不符合规范。代码已上传到https://github.com/cnlinlishi/mybatis-generator-plugin。在generator-configuration.xml 添加插件。XxxArticleMapper类中使用XxxArticleDO。如果有更多拓展想法可联系本人,将为你实现。pom.xml文件中增加依赖。

2024-01-25 15:33:18 425

原创 mybatis-generator 数据库字段类型tinyint和smallint映射成java类型Integer

当前mybatis-generator官方插件生成的xml里面的resultMap默认会把tinyint映射成Byte,smallint映射成Short,使用起来繁琐。代码已上传到https://github.com/cnlinlishi/mybatis-generator-plugin。在生成的DO类中使用Integer替换Byte和Short。在generator-configuration.xml 添加插件。如果有更多拓展想法可联系本人,将为你实现。可自主拉取,安装到本地maven库。

2024-01-24 14:06:00 434

原创 mybatis-generator 分页和lombok插件

在生成的DO类加上@Data和@NoArgsConstructor注解,引入lombok.Data和lombok.NoArgsConstructor,并且将数据库的列的comment自动添加到字段注释上。当前mybatis-generator官方插件生成的example不支持分页参数,另外也没有继承lombok类,生成的类里有大量的getter和setter不够精简。在生成的XxxExample中加入两个属性limit和offset,同时加上set和get方法。如果有更多拓展想法可联系本人,将为你实现。

2024-01-16 11:02:54 405 1

原创 zookeeper是强一致性的吗

数据一致性问题产生的根本原因在于多节点之间数据的同步,注意这里讨论的是服务集群环境下的数据一致性问题,如果是多程序之间的数据一致性问题,更多的是从同步时间上进行考虑,这里不进行这种情况的谈论。

2022-10-29 22:41:46 521

慢sql治理模板文件(通用)

用于慢sql治理

2024-01-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除