《丁奇-MySQL45讲-20/21》之归纳总结

20 | 幻读是什么,幻读有什么问题?

第20、21篇章主要讲述MySQL加锁的规则,这些规则并不是很明显,也没有在官方文档上直接说明,丁奇老师完全是看着代码总结出来了,有点难为了,个人觉得不一定是有效的,特别是在不同的MySQL版本下加索策略可能会有所不同,最好能去实地看这两篇文章,感受下实战。

  • 间隙锁和间隙锁之间是不冲突的。

  • 间隙锁只在可重复读隔离级别下才会有。

21 | 为什么我只改一行的语句,锁这么多?

  • 加锁规则:
  1. 加锁的基本单位是next-key lock,属于前开后闭区间,比如(a, b]。

  2. 查找过程中访问到的对象才会加锁。

  3. 索引上的等值查询,给唯一索引加锁的时候,next-key lock退化为行锁。

  4. 索引上的等值查询,向右遍历且最后一个值不满足等值条件的时候,next-key lock 退化为间隙锁。

个人觉得应该不止这些,没有一个比较好的理解,包括第22篇对思考题的解释,我都感觉有点模棱两可,最难理解的就是范围查询怎么加锁。

posted @ 2021-03-29 22:16  zliawk  阅读(193)  评论(0)    收藏  举报