普通读是通过 MVCC 来实现的。
mvcc的组件:
1 三个隐藏字段:事务ID,行ID,回滚指针
行id:一个表如果没有唯一索引会自动创建
2 视图readview
3 undoLog 回滚日志
mvcc只适用于可重复读rr 读已提交rc
读已提交和可重复读的区别
生成readview只读视图的时机不同
但生成视图的规则相同
read commited
每次查询时生成最新的视图
Repeatable read
开启事务时生成视图,不受其它事务影响
自身事务的增删改是可以看见的
其它事务的增删改是看不见的