← 返回首页
MySQL 的 MVCC 原理是什么?
MVCC 是多版本并发控制,用来提升数据库并发读写能力。InnoDB 每行记录有隐藏字段,比如事务 ID 和回滚指针。更新数据时会生成新版本,旧版本通过 undo log 串起来。普通 select 不一定读最新版本,而是根据 ReadView 判断当前事务能看到哪个版本。
ReadView 里会记录当前活跃事务列表、最小活跃事务 ID、下一个事务 ID 等信息。读已提交隔离级别下,每次查询都会生成新的 ReadView;可重复读下,事务第一次一致性读生成 ReadView,后续复用它,所以同一事务内多次查询结果一致。