如果使用 start transaction with consistent snapshot,会立刻创建一致性读视图
RC read commit 读提交 RR repeatable read 可重复读
MVCC multi-version concurency control 多版本并发控制 ,每行记录在更新时会记录一行回滚操作在回滚日志 undo log中
原理:为每个事务构造一个数组,用于保存当前的活跃事务(已开启未提交),视图数组里最小的事务Id为低水位,最大的事务Id+1为高水位,这个视图数组就是一致性读视图,数据版本的可见性基于row transaction id 和该数组实现,视图数组把事务分为 已提交事务、未提交事务、未开始事务三部分,其中未提交分为两部分 1、row trans id 在数组中 ,表示该版本事务是由还没提交的事务生成的 不可见状态 (此时视图已生成,否则会造成脏读)2、row trans id 不在数组中,该版本事务已提交) 可见