mysql RR是否会导致幻读?

除了rr级别的当前读,都会幻读

mysql不同隔离级别:

而对于RC级别的语句级快照和RR级别的事务级快照的之间的区别,其实是由read_view生成的时机来实现的。

RC级别在执行语句时,会先关闭原来的read_view,重新生成新的read_view。而RR级别的read_view则只在事务开始时创建的。所以RU级别每次获取到的都是最新的数据,而RR级别获取到的是事务开始时的数据。

RC隔离级别中:

  • 多次快照读使用不同一致性视图,出现幻读;
  • 当前读(只有Record lock)时,读最新版本,会阻塞删除操作,当不阻塞插入,与多次快照读一样出现幻读;

RR隔离级别中:

  • 快照读中:可避免部分幻读,但两次快照读中间有更新语句(包含其它事务提交的插入数据-在第一次快照读后开启并提交),第二次快照读则出现幻读;RR+快照读例子
  • 当前读中:默认使用next-lock实现的行锁,不会导致幻读;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值