没听懂,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锁这一章
10 -
翔仔
2019-01-01
新年快乐!
00
相似问题