MySQL到底是怎么加行级锁的?

本文详细探讨了MySQL中行级锁的实现机制,通过实例分析了唯一索引等值查询和范围查询时的锁行为,以及非唯一索引等值查询时的锁差异。在不同场景下,锁会退化为记录锁或间隙锁,影响并发操作的执行。
摘要由CSDN通过智能技术生成

MySQL到底是怎么加行级锁的?

其中,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 会退化成「间隙锁」

接下里用两个案例来说明。

先看看记录是存在的。

来看下面这个例子:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值