请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

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

正在回答 回答被采纳积分+3

2回答

翔仔 2019-01-01 01:04:20

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


1 回复 有任何疑惑可以回复我~
翔仔 2019-01-01 01:26:27

新年快乐!

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信