为什么RR隔离级别下,select能读取到后开启事务的更新操作
来源:3-16 锁模块之当前读和快照读
慕神3289891
2020-10-11
看到老师在RR隔离级别下的例子,test3 session优先开启事务,test4 session接着开启。然后在test4 session中执行了一条update操作,将数据更新为0。
再在test3 session中执行了select,这个时候读取到了之前更新的。为什么这个时候能读取到? 事务不是test3 session先开启的么?所以test3 session的事务id要大于test4 session的事务id才对。
老师能否用行的db_trx_id跟结合read view的m_low_limit_id跟m_up_limint_id来解释下这个过程
写回答
1回答
-
翔仔
2020-10-11
同学好,咱们后面ReadView是在test4 session关闭之后,也就是test4 session不是活跃事务了之后开启的,所以跟m_low_limit_id和m_up_limint_id没有关系了,开启的时候,是能读取到已经提交的数据的
00
相似问题