没听懂,RR级别不是避免不了幻读么。您这边说的快照读的mvcc 和当前读的锁是Serializable级别的机制么

来源:3-17 锁模块之RR如何避免幻读

慕粉2207044717

2018-12-31

如上所述

写回答

2回答

翔仔

2019-01-01

同学好,课程里面讲得比较清楚,通常我们理解的RR级别是避免不了幻读的,但是MYSQL在RR级别下却避免了幻读,就是在RR隔离级别下具备让我们看不到phantom行的能力,但是这并不意味着快照读是避免幻读现象发生的根本,只是你如果先于要提交数据变更的事务打开read view时,不论别的事务的变更是否已提交,在当前事务内再次调用快照读即MVCC的时候还是读的是可见性版本内的数据,有一种掩耳盗铃的意味在里面。其实,在RR、Serializable级别下真正防止幻读发生的是因为事务对数据加了next-key锁。同学可以仔细学习一下next-key锁这一章


1
0

翔仔

2019-01-01

新年快乐!

0
0

剑指Java面试-Offer直通车 百度资深面试官授课

招聘季即将到来,让百度资深面试官来为你的高薪Offer保驾护航

8441 学习 · 1872 问题

查看课程