MySQL在Read Uncommitted级别下写操作加X锁

本文通过实验证明,即使在读未提交(RU)的隔离级别下,MySQL的写操作也会加X锁。这与普遍观点相悖,通常认为RU级别下写操作不加锁。通过具体实验步骤和观察到的锁情况,揭示了RU级别下写操作的真实行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

很多文章认为MySQL在读未提交(Read Uncommitted)的隔离级别下,写操作是不加锁的,然而实际上并不是,在RU级别下,写操作加有X锁

实践出真知

以前,我也认为RU隔离级别下,写操作不会加锁。偶然间,看到一篇优质的文章《查看Mysql正在执行的事务、锁、等待》,文章介绍了查看锁的语句:

select * from information_schema.innodb_locks;

实验表:test

693597-20180516141326620-1038160940.png

session 1

设置session隔离级别为RU,开启事务,更新,但不commit。

693597-20180516143617845-2121025728.png

session 2

设置session隔离级别为RU,开启事务,更新,等待锁。

693597-20180516143739523-2035857772.png

查询目前的锁情况

693597-20180516143801133-1460983445.png

可以看到:在RU级别下,写操作有X锁

参考文章
查看Mysql正在执行的事务、锁、等待

转载于:https://www.cnblogs.com/acode/p/9045929.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值