请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

rc隔离级别的快照读,是不是都是真实读

rc隔离级别的快照读,是不是都是真实读,不遵循rr下的可见性算法

正在回答 回答被采纳积分+3

2回答

翔仔 2020-05-25 17:58:39

同学好,

首先比较这条记录的 DB_TRX_ID 是否是 小于 up_limit_id 或者 等于当前事务id。如果满足,那么说明当前事务能看到这条记录。如果大于则进入下一轮判断

然后判断这条记录的 DB_TRX_ID 是否 大于等于 low-limit-id。如果大于等于则说明此事务无法看见该条记录,不然就进入下一轮判断。

判断该条记录的 DB_TRX_ID 是否在活跃事务的数组中,如果在则说明这条记录还未提交对于当前操作的事务是不可见的,如果不在则说明已经提交,那么就是可见的。

也就是第三条,根据同学反馈的情况是已经提交了,所以是可见的,因为不存在于活跃的事务列表了

0 回复 有任何疑惑可以回复我~
提问者 慕神3289891 2020-05-24 12:19:55

我后面看了下,应该还是有可见性算法。那问题是,如果rc下遵循可见性算法,并且每次查询都创建read view。那这样创建的read view又跟其他事务的开始先后即事务id有关系。比如我开始一个事务a,然后开始另外一个事务b。这样b的事务id就要大于a的。但是b比a先提交。假如他们改的是同一个字段,那按照可见性算法,a是读取不到b提交的最新值的吧??因为a会去找事务id小于等于它自身的

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信