MySQL事务提交流程(2pc)时序图

本文通过简化版的时序图,详细介绍了MySQL事务的提交流程,包括begin、DML操作、prepare和commit阶段。重点阐述了两阶段提交的过程,涉及到binlog和InnoDB存储引擎的操作,但未涵盖组提交和InnoDB的详细落盘机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MySQL事务提交流程时序图

网上的资料有点乱,所以特画此图,来看事务操作的主要流程,此图为事务处理的简化时序图,在处理细节上省略了和多线程复制相关的操作,innodb各个阶段的详细操作,重在说明流程。

一、简化版的事务处理时序图

时序图说明

关于此图的必要性说明

  • 如果你想了解group commit的详细机制,此图不适合,因为此图忽略了组提交的细节。
  • 如果你想了解Innodb落盘机制,此图不适合,因为也忽略了。
  • 此图基于Oracle MySQL-5.7.18 社区版
  • 省略了server通过handler操作storage在整个事务处理过程中的关系
  • 省略了innobase的各个阶段的详细操作
  • TC_LOG在MySQL开启binlog时,其实就是MYSQL_BIN_LOG,MYSQL_BIN_LOG同时作为事务协调者和事务参与者,所以图中存在TC这个层级,所有TC的处理其实是MYSQL_BIN_LOG的处理,TC封装了接口供上层调用。
  • 资源管理器并不是向TC注册,但是此图省略了这部分内容,显示为向TC注册。因为最终在事务提交操作时,TC会遍历资源管理器来进行操作。
  • 此图在缺少本说明的情况下,不要随意复制粘贴,以免引起读者的误会。
  • 此图源自于源码,但是不涉及源码。
  • 能力有限,对于代码的理解也有限,画图水平更有限,有错误请指正。

时序图如下:
在这里插入图片描述

二、流程简介

如下是对时序图的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值