MySQL事务提交的三个阶段介绍

事务提交分三个阶段

– 每阶段若干个线程进入阶段队列,第一个(leader)线程完成每个线程的会话的阶段任务

– 各阶段并行执行,任一个阶段只有一组事务

– 第二,三阶段可以追加合并到前面一批的队列,原leader中途变为follower

– flush阶段,为每个事务依次做:

• 存储引擎prepare, 一次性为全组刷存储引擎事务日志

• 产生XID_EVENT, 固化事务的binlog cache

• 产生gtid-log-event(事务时间戳,全局时间戳)

• 写入事务的binlog到binlog文件中

– sync阶段

• binlog group commit等待

• 一次性刷盘binlog文件

– commit

• 存储引擎commit,按照队列内顺序做

请使用浏览器的分享功能分享到微信等