为什么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没有关系了,开启的时候,是能读取到已经提交的数据的

0
0

剑指Java面试-Offer直通车 百度资深面试官授课

招聘季即将到来,让百度资深面试官来为你的高薪Offer保驾护航

8427 学习 · 1870 问题

查看课程