mvcc实现原理:
数据库隐藏字段:id(如缺失)、trx_id(当前事务id,自增的)、roll_back_ptr(回滚指针)
Undolog版本链
Read View:m_ids(活跃事务id的集合)、min_trx(最小活跃事务id的集合)、max_trx(预分配事务id的集合=最大活跃事务id+1)、creator_trx_id(当前ReadView所属的事务)
版本链的选择:原则:要么是自己生成的快照,要么是预分配事务之前已经提交了的事务的快照。例如下图只能访问trx_id=2的undolog
rc隔离级别下每次快照读生成readview
rr隔离级别下只有第一次快照读生成readview