当mysql开启binlog日志时,会存在一个内部XA的问题:事务在存储引擎层redo log的写入和binlog的写入一致性问题. mysql通过两阶段提交很好的解决了redo log和binlog一致性问题: 第一阶段:innodb prepare, 持有prepare_commit_mutex,redo log持久化到磁盘(flush/sync redolog),并将回滚段设置为prepare状态. 第二阶段:分为两步. a. flush/sync binlog b. commit(写入c…