MVCC支持的事务隔离级别:RC、RR。
InnoDB的MVCC是基于undo log和ReadView实现的。
insert 操作undo log 可以在事务提交后直接删除
update 操作undo log是指在delete和update操作中产生的undo log。
ReadView是再select时记录当前活跃的事务id。
根据访问版本的事物id与ReadView内部记录的事务id判断。
1、访问版本小于ReadView的最小值,能够访问。
2、访问版本大于ReadView的最大值,不能访问。
3、访问版本在于ReadView的最大值与最小值之间,如果不存在ReadView内,能够访问。
RC
每次select都会生成ReadView,所以select结果是读已经提交。
RR
当前事务第一次select操作时,生成一个ReadView,然后当前事务所有的select都使用该ReadView,所以能实现可重复读