MySQL使用乐观锁要不要把事务隔离级别改为读提交?

我现在有两个想法

1.要改为读提交: MySQL默认的隔离级别是可重复读, 因为乐观锁要在事务执行时读取记录是否改变, 如果不能读取到已提交事务修改的记录, 乐观锁就没法实现了

2.不用改为读提交: update ... where stock=...语句会加X锁, 它是当前读, 也就是能读到当前最新的记录, 所以不用改也行

想法1应该是对的, 想法2我不确定是不是当前读, 能读取到最新的记录吗?
and 回答一下标题的问题吧

MySQL
数据库
读提交
2022-11-16 13:02:43
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
雷狂苍浪
1

自己动手解决了, 在MySQL默认的隔离级别-可重复读 下执行的

​结论:

update ... where stock=...语句是当前读, 会加X锁,

在这条语句执行时, 会读取到已提交的记录(但在10处的select由于是RR下, 只能读到版本链的旧数据)

所以不用把事务隔离级别改为读提交

分享
微博
QQ
微信
回复
2022-11-16 14:27:35
相关问题
mysql 默认隔离级别是REPEATABLE-READ
3673浏览 • 1回复 待解决
乐观和悲观锁在SQL中如何体现?
3427浏览 • 1回复 待解决
mysql 二阶段提交 binlog,redolog,undolog
2816浏览 • 1回复 待解决
RDS MySQL是否有表的监控?
2876浏览 • 1回复 待解决
mysql共享问题有知道的吗?
2193浏览 • 1回复 待解决
基于mysql的悲观的运用场景?
2553浏览 • 1回复 待解决
MySQL中innodb的有知道的吗?
1921浏览 • 1回复 待解决
OpenHarmony应用使用NativeC++无法文件
2149浏览 • 0回复 待解决