MVCC
MVCC:多版本并发控制
每个表有三个隐藏列
1.隐式主键
2.事物id
3.回滚指针(指向undo日志数据用于回滚)
readView(读视图)
- 如果事务隔离级别是 ReadCommit ,一个事务的每一次 Select 都会去查一次ReadView ,每次查询的Read View 不同,就可能会造成不可重复读或者幻读的情况。*
- 如果事务的隔离级别是可重读,为了避免不可重读读,一个事务只在第一次 Select 的时候会获取一次Read View ,然后后面索引的Select 会复用这个 ReadView.