mysql中的MVCC


MVCC

MVCC:多版本并发控制

每个表有三个隐藏列

1.隐式主键
2.事物id
3.回滚指针(指向undo日志数据用于回滚)

readView(读视图)

  • 如果事务隔离级别是 ReadCommit ,一个事务的每一次 Select 都会去查一次ReadView ,每次查询的Read View 不同,就可能会造成不可重复读或者幻读的情况。*
  • 如果事务的隔离级别是可重读,为了避免不可重读读,一个事务只在第一次 Select 的时候会获取一次Read View ,然后后面索引的Select 会复用这个 ReadView.