MySQL MVCC
MySQL MVCC 内容 MVCC(Multi-Version Concurrency Control),即多版本并发控制,是MySQL中InnoDB存储引擎实现的一种并发控制机制。它通过为每个事务维护一个数据快照(ReadView)来实现,允许读写操作并发执行,同时保持数据的一致性和隔离性。MVCC主要依赖于隐藏字段、Undo日志和ReadView来实现。 隐藏字段 在InnoDB中,每条记录除了我们看到的业务字段外,还包含了一些隐藏字段,如: * DB_TRX_ID:6字节的事务ID,表示最后修改这条记录的事务ID。 * DB_ROLL_PTR:7字节的回滚指针,指向这条记录的上一个版本,保存在Undo日志中。 * DB_ROW_ID(如果表没有主键):6字节的隐藏主键,用于唯一标识记录。 Undo日志 Undo日志是InnoDB中用于实现MVCC的重要组件之一。它记录了数据被修改前的版本,以便在需要时能够回滚到某个特定的历史版本。Undo日志分为两种: * Insert Undo日志:在插入操作中生成,由于插入的记录对其他事务不可见,故在