MySQL 事务的二阶段提交是什么?

March 18, 2025 / 老大 / 11阅读 / 0评论/ 分类: 数据库

MySQL事务的二阶段提交是指在MySQL中,为了确保redolog(重做日志)binlog(二进制日志)之间的一致性,使用的一种机制。MySQL通过二阶段提交来保证在崩溃恢复(crash recovery)时,不会出现数据丢失或数据不一致的问题。

二阶段提交的两个阶段

  1. 准备阶段(Prepare Phase):在事务提交时,MySQL的InnoDB引擎会先写入redolog,并将其标记为prepare,表示事务已经准备但还未真正完成;此时的redolog是预提交阶段,还未标记为完成提交。

  2. 提交阶段(Commit Phase):当redolog的状态变为prepare后,MySQL Server会写入binlog(记录用户的DML操作);binlog写入成功后,MySQL会通知InnoDB,将redolog状态改为commit,完成整个事务的提交过程。

#MySQL(21)

评论