《丁奇-MySQL45讲-20/21》之归纳总结
20 | 幻读是什么,幻读有什么问题?
第20、21篇章主要讲述MySQL加锁的规则,这些规则并不是很明显,也没有在官方文档上直接说明,丁奇老师完全是看着代码总结出来了,有点难为了,个人觉得不一定是有效的,特别是在不同的MySQL版本下加索策略可能会有所不同,最好能去实地看这两篇文章,感受下实战。
-
间隙锁和间隙锁之间是不冲突的。
-
间隙锁只在
可重复读隔离级别下才会有。
21 | 为什么我只改一行的语句,锁这么多?
- 加锁规则:
-
加锁的基本单位是next-key lock,属于前开后闭区间,比如(a, b]。
-
查找过程中访问到的对象才会加锁。
-
索引上的
等值查询,给唯一索引加锁的时候,next-key lock退化为行锁。 -
索引上的
等值查询,向右遍历且最后一个值不满足等值条件的时候,next-key lock 退化为间隙锁。
个人觉得应该不止这些,没有一个比较好的理解,包括第22篇对思考题的解释,我都感觉有点模棱两可,最难理解的就是范围查询怎么加锁。
浙公网安备 33010602011771号