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.