mvcc中RR和RC的区别
时间: 2024-05-17 16:16:14 浏览: 69
InnoDB,快照读,在RR和RC下有何差异
在MVCC(多版本并发控制)中,RR(可重复读)和RC(读已提交)级别都使用了MVCC来进行不加锁的读。然而,RR和RC之间存在一些区别。
在RC模式下,每次读操作都会生成一个ReadView,这个ReadView会记录在开始读取时数据库的状态。这意味着在同一事务中,不同的查询可能会返回不同的结果,因为其他事务可能已经修改了数据。这就是为什么RC不能解决幻读的原因。
相比之下,在RR模式下,每个事务在开始时都会生成一个快照(Snapshot)来获取数据库的状态。这个快照会一直被事务使用,直到事务结束。因此,在RR模式下进行的同一查询会始终返回相同的结果,即使在事务执行期间有其他事务修改了数据。这就是为什么RR可以解决幻读的原因。
总结一下,RR模式下使用的快照能够保证在整个事务过程中查询到的数据始终是一致的,而RC模式下每次读操作都生成一个ReadView,因此可能会受到其他事务的修改影响,导致查询结果不一致。这就是RR和RC在MVCC中的区别。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [MVCC下的RR和RC级别的区别和实现](https://blog.csdn.net/qq_35634181/article/details/113280233)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
阅读全文