采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
rc隔离级别的快照读,是不是都是真实读,不遵循rr下的可见性算法
同学好,
首先比较这条记录的 DB_TRX_ID 是否是 小于 up_limit_id 或者 等于当前事务id。如果满足,那么说明当前事务能看到这条记录。如果大于则进入下一轮判断
然后判断这条记录的 DB_TRX_ID 是否 大于等于 low-limit-id。如果大于等于则说明此事务无法看见该条记录,不然就进入下一轮判断。
判断该条记录的 DB_TRX_ID 是否在活跃事务的数组中,如果在则说明这条记录还未提交对于当前操作的事务是不可见的,如果不在则说明已经提交,那么就是可见的。
也就是第三条,根据同学反馈的情况是已经提交了,所以是可见的,因为不存在于活跃的事务列表了
我后面看了下,应该还是有可见性算法。那问题是,如果rc下遵循可见性算法,并且每次查询都创建read view。那这样创建的read view又跟其他事务的开始先后即事务id有关系。比如我开始一个事务a,然后开始另外一个事务b。这样b的事务id就要大于a的。但是b比a先提交。假如他们改的是同一个字段,那按照可见性算法,a是读取不到b提交的最新值的吧??因为a会去找事务id小于等于它自身的
登录后可查看更多问答,登录/注册
招聘季即将到来,让百度资深面试官来为你的高薪Offer保驾护航
1.8k 27
2.7k 22
1.2k 15
1.4k 14
1.3k 14