MySQL 核心模块揭秘 | 15 期 | 事务模块小结

✍ 专栏小结

1 月 3 日,我在社区发布事务模块的第一篇文章;4 月 17 日,发布了最后一篇文章。历时 3 个半月,用 14 篇文章对事务模块做了比较全面的介绍。

本文我们对事务模块已经发布的 14 篇文章做个简单回顾。

01 期事务池和管理器的初始化

👆 事务池和管理器是事务模块的基石,把它们的初始化过程作为专栏的第一篇文章,再合适不过了。

02 期BEGIN 语句会马上启动事务吗?

👆 这篇文章介绍了开启一个事务的各种 SQL 语句,并且以 BEGIN 为代表,介绍了开始一个事务的过程。

03 期我是一个事务,请给我一个对象

👆 事务在内存中需要有一个东西承载,这个东西就是事务对象。这篇文章介绍了分配事务对象的过程。

04 期终于要启动事务了

👆 事务有了栖身之地以后,启动前的准备工作已经就绪,待到需要时就可以启动了。这篇文章介绍了事务的启动过程。

05 期读事务和只读事务的变形记

👆 事务有不同的身份,比如读事务、只读事务、读写事务。这篇文章介绍了读事务、只读事务的身份什么时候会发生变化,以及会发生什么样的变化。

06 期事务提交之前,binlog 写到哪里?

👆 事务执行过程中产生的 binlog 日志,写入 binlog 日志文件之前,需要有个临时存放的地方。这篇文章介绍了事务执行过程中 binlog 日志会临时存放到哪里,以及怎么存放。

07 期二阶段提交 (1) prepare 阶段

08 期二阶段提交 (2) commit 阶段

09 期二阶段提交 (3) flush、sync、commit 子阶段

10 期binlog 怎么写入日志文件?

11 期InnoDB 提交事务,提交了什么?

👆 二阶段提交分为 prepare、commit 两个阶段,commit 阶段又分为 flush、sync、commit 三个子阶段。

上面五篇文章介绍了二阶段提交的整个过程:

  • 前三篇介绍了二阶段提交的本身。
  • 第四篇介绍了 flush 子阶段从临时存放处读取 binlog 日志,写入 binlog 日志文件的过程。
  • 第五篇介绍了 InnoDB 存储引擎层提交事务的过程。

12 期创建 savepoint

13 期回滚到 savepoint

👆 我们日常使用 MySQL,很少用到 savepoint,但是 MySQL 内部用的却不少。

例如:插入、更新记录导致唯一索引冲突时,已经插入到主键索引的记录需要删除,就会用到 savepoint。

上面两篇文章介绍了创建 savepoint、回滚到 savepoint 的过程。

14 期回滚整个事务

👆 回滚整个事务,属于我们经常用到的功能,这篇文章介绍了回滚整个事务的过程。

预告:MySQL 锁模块。

更多技术文章,请访问:https://opensource.actionsky.com/

关于 SQLE

SQLE 是一款全方位的 SQL 质量管理平台,覆盖开发至生产环境的 SQL 审核和管理。支持主流的开源、商业、国产数据库,为开发和运维提供流程自动化能力,提升上线效率,提高数据质量。

SQLE 获取

类型 地址
版本库 https://github.com/actiontech/sqle
文档 https://actiontech.github.io/sqle-docs/
发布信息 https://github.com/actiontech/sqle/releases
数据审核插件开发文档 https://actiontech.github.io/sqle-docs/docs/dev-manual/plugins/howtouse
相关推荐
夜泉_ly1 小时前
MySQL -安装与初识
数据库·mysql
qq_529835352 小时前
对计算机中缓存的理解和使用Redis作为缓存
数据库·redis·缓存
月光水岸New5 小时前
Ubuntu 中建的mysql数据库使用Navicat for MySQL连接不上
数据库·mysql·ubuntu
狄加山6755 小时前
数据库基础1
数据库
我爱松子鱼5 小时前
mysql之规则优化器RBO
数据库·mysql
chengooooooo5 小时前
苍穹外卖day8 地址上传 用户下单 订单支付
java·服务器·数据库
Rverdoser6 小时前
【SQL】多表查询案例
数据库·sql
Galeoto6 小时前
how to export a table in sqlite, and import into another
数据库·sqlite
人间打气筒(Ada)7 小时前
MySQL主从架构
服务器·数据库·mysql
leegong231117 小时前
学习PostgreSQL专家认证
数据库·学习·postgresql