其中,id 是主键索引(唯一索引),b 是普通索引(非唯一索引),a 是普通的列。
注意,我的 MySQL 的版本是 8.0.26,不同版本的加锁规则可能是不同的。
![MySQL到底是怎么加行级锁的?](https
【一线大厂Java面试题解析+核心总结学习笔记+最新架构讲解视频+实战项目源码讲义】
浏览器打开:qq.cn.hn/FTf 免费领取
😕/img-blog.csdnimg.cn/img_convert/9345113e6d064b0cb48e82aeae215048.png)
唯一索引等值查询
========
当我们用唯一索引进行等值查询的时候,查询的记录存不存在,加锁的规则也会不同:
-
当查询的记录是存在的,在用「唯一索引进行等值查询」时,next-key lock 会退化成「记录锁」。
-
当查询的记录是不存在的,在用「唯一索引进行等值查询」时,next-key lock 会退化成「间隙锁」。
接下里用两个案例来说明。
先看看记录是存在的。
来看下面这个例子: