mysql的RR下当前读和快照读不一致的情况;记录锁和间隙锁;幻读解释

先上幻读的解释

幻读,并不是说两次读取获取的结果集不同,幻读侧重的方面是某一次的 select 操作得到的结果所表征的数据状态无法支撑后续的业务操作。更为具体一些:select 某记录是否存在,不存在,准备插入此记录,但执行 insert 时发现此记录已存在,无法插入,此时就发生了幻读。

当前读和快照读不一致的情况

RR级别下,通过MVCC保证同一事务内两次快照读不出现幻读,通过间隙锁保证同一事务内两次当前读不出现幻读。但是如果是你先快照度一次,再当前读一次,如果两次读期间别的事务插入了数据并提交了的话,两次读的结果就可能不一致出现幻读。

记录锁和间隙锁

记录锁是加在索引上的锁,间隙锁是加在索引之间的。

间隙锁:将当前数据行与上一条数据和下一条数据之间的间隙锁定,保证此范围内读取的数据是一致的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值