https://juejin.cn/post/7102676257149550622
MVCC 的实现原理依赖于每一行记录中的三个隐藏字段、undo log和 Read View 来实现的。
隐藏字段:
- DB_ROW_ID 6byte, 隐含的自增ID(隐藏主键),如果数据表没有主键,InnoDB会自动以DB_ROW_ID产生一个聚簇索引
- DB_TRX_ID 6byte, 最近修改(修改/插入)事务ID:记录创建这条记录/最后一次修改该记录的事务ID
- DB_ROLL_PTR 7byte, 回滚指针,指向这条记录的上一个版本(存储于rollback segment里)
- DELETED_BIT 1byte, 记录被更新或删除并不代表真的删除,而是删除flag变了