next-keylock备忘
        
        
            名词解释
解释: 间隙锁(Gap Lock)和行锁合称 NextKey Lock 【前开后闭的区间】
间隙锁存在的场景和原因: 当为可重复读的时候,就会用到间隙锁,用来解决幻读问题
加锁规则
- 原则 1:加锁的基本单位是 next-key lock。希望你还记得,next-key lock 是前开后闭区间。
 - 原则 2:查找过程中访问到的对象才会加锁。
 - 优化 1:索引上的等值查询,给唯一索引加锁的时候,next-key lock 退化为行锁。
 - 优化 2:索引上的等值查询,向右遍历时且最后一个值不满足等值条件的时候,next-key lock 退化为间隙锁。
 - 一个 bug:唯一索引上的范围查询会访问到不满足条件的第一个值为止。
 
同时,有一个注意点。
1  | -- mysql会认为查询完接下来就要更新数据,会顺便给主键索引满足条件的行上锁  | 
- Post title:next-keylock备忘
 - Post author:大黄
 - Create time:2023-10-24 14:17:24
 - Post link:https://huangbangjing.cn/2023/10/24/next-keylock备忘/
 - Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.