如果是在 REPEATABLE-READ,除以上所说的唯一约束冲突外 , gap lock 的存在是这样的:
普通索引(非唯一索引)的S/X Lock,都带 gap 属性,会锁住记录以及前1条记录到后1条记录的左闭右开区间,比如有[4,6,8]记录,delete 6,则会锁住[4,8)整个区间 。
对于 gap lock,相信 DBA 们的心情是一样一样的,所以我的建议是:
1. 在绝大部分的业务场景下,都可以把 MySQL 的隔离界别设置为 READ-COMMITTED;
2. 在业务方便控制字段值唯一的情况下 , 尽量减少表中唯一索引的数量 。
锁冲突矩阵
前面我们说的 GAP LOCK 其实是锁的属性,另外我们知道 InnoDB 常规锁模式有:S 和 X,即共享锁和排他锁 。锁模式和锁属性是可以随意组合的,组合之后的冲突矩阵如下,这对我们分析死锁很有帮助:
请点击输入图片描述
【mysql是怎么加锁的 24排量能跑多快】mysql是怎么加锁的的介绍就聊到这里吧 , 感谢你花时间阅读本站内容,更多关于24排量能跑多快、mysql是怎么加锁的的信息别忘了在本站进行查找喔 。
推荐阅读
- sqlserver桌面图标,sqlserver2019图标
- ipadmini什么cpu,ipadmini尺寸
- sqlserver判断一串字符是数字,sqlserver判断字符串包含
- 跳舞视频带什么小程序,跳舞视频带什么小程序好
- mysql怎么存负数 mysql中赋值语句
- linux释放命令,linux释放cached
- 影院如何做新媒体推广赚钱,新开影院怎么做推广
- php大量数据上传 php上传大小限制
- css3层叠样式效果,css层叠样式表的基本特征