大厂面试题-MySQL中的RR隔离级别,到底有没有解决幻读问题?

MySQL中的RR(Repeatable Reads)事务隔离级别,到底有没有解决幻读问题发起了激烈的讨论。

部分人说有,一部分人说没有。

结论,MySQL中的RR事务隔离级别,在特定的情况下会出现幻读的问题。

所谓的幻读,表示在同一个事务中的两次相同条件的查询得到的数据条数不一样。

那在RR级别下,具体什么情况下会出现幻读呢?

来看这样一种情况{如图},在事务1里面通过update语句触发当前读的情况下,就会导致在该事务中的前后两次查询的数据行数不一致,从而出现幻读的现

导致幻读的根本原因是,触发的当前读操作,绕过了快照读,从而导致MVCC机制在当前场景下失效。

最终读取到了事务2中已经提交的数据。

为了避免出现这类的情况,我们可以通过for update语句加锁。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值