rr隔离级别下 什么情况会一次事务内生成两次readview
时间: 2024-04-22 18:28:10 浏览: 121
56 MySQL最牛的RR隔离级别,是如何基于ReadView机制实现的?l.pdf
在 RR(可重复读)隔离级别下,一次事务内生成两次 readview 的情况有以下几种可能性:
1. 并发事务:如果在一个事务中进行了多个并发的读操作,每个读操作都会生成一个 readview。这是因为事务在读取数据时需要创建一个快照,以便在整个事务期间保持一致的视图。
2. 多个查询:如果在同一个事务中执行了多个查询操作,每个查询都会生成一个 readview。这是因为每个查询可能会涉及不同的数据集,需要创建不同的快照来保证数据的一致性。
3. 重复读取:如果在一个事务中对同一数据进行了多次读取操作,每次读取都会生成一个 readview。这是为了确保在事务内部多次读取同一数据时,数据的一致性得到保证。
需要注意的是,RR 隔离级别下的 readview 只是在读取时创建的快照,并不代表实际的数据存储。每个 readview 只能看到事务开始时已经提交或未提交的数据,而不能看到其他并发事务中已经提交的数据。
阅读全文