ReadView
题记
- 在undo log中提到delete的版本链
- 同时在delete删除数据中,对真实删除记录后,不会找不到版本链溯源起点,做了说明
- 虽然不在计划内,但也可将readview请出面见大家了
何时创建
- 在可重复读隔离级别中
- 仅在事务中第一次 执行SELECT语句时生成一次ReadView
- 在整个事务期间复用
结构
- 是事务进行快照读时生成的一致性视图

如何使用

- 关注活跃事务[20,25,30]
- 抓住活跃事务更新 或删除 的记录是未提交
- 那么使用条件再次读 时,读取到页面中的记录1
- 检查到记录1 的trx_id 不等于当前事务的Id
- 就开始基于版本链查找
- 所以只要记录1 的undo log 中trx_id 的值在活跃事务集合中
- 那么就不是要读取的快照
- 那何时是个头
- 只要找到undo log 的trx_id 小于当前事务id ,便是最终的记录1?
- 当前不是,你得执行一种计算方式,就是undo log回滚那套规则
- 从记录1 回滚到此处,得到那时 ,当然就是初次认识 的记录1
