最近想再次深入学习MVCC原理,收藏了以下好文章,供以后查阅
阅读以上文章发现,MVCC机制是存在一个问题,也就是缺陷。
问题:在RR情况下,事务A开启事务后修改了数据a,但未提交commit;此时事务B开启事务后,要做多次查询数据a;如果事务A完成提交commit,事务B还是进行多次查询数据a,查询数据a还是第一次查询的数据。也就是使用旧数据。
在RC情况下,没有该问题。
原因:RR级别下,第一次快照读时创建read view,RC级别下,每次快照读均会创建新的read view
最近想再次深入学习MVCC原理,收藏了以下好文章,供以后查阅
阅读以上文章发现,MVCC机制是存在一个问题,也就是缺陷。
问题:在RR情况下,事务A开启事务后修改了数据a,但未提交commit;此时事务B开启事务后,要做多次查询数据a;如果事务A完成提交commit,事务B还是进行多次查询数据a,查询数据a还是第一次查询的数据。也就是使用旧数据。
在RC情况下,没有该问题。
原因:RR级别下,第一次快照读时创建read view,RC级别下,每次快照读均会创建新的read view