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 获取

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
一则 TCP 缓存超负荷导致的 MySQL 连接中断的案例分析
除了 MySQL 本身之外,如何分析定位其他因素的可能性? 作者:龚唐杰,爱可生 DBA 团队成员,主要负责 MySQL 技术支持,擅长 MySQL、PG、国产数据库。 爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。 本文约 1200 字,预计阅读需要 3 分钟。 背景 在执行跑批任务的过程中,应用程序遇到了一个问题:部分任务的数据库连接会突然丢失,导致任务无法完成。从数据库的错误日志中,发现了 Aborted connection 的信息,这说明客户端和服务器之间的通信被异常中断了。 分析 为了找出问题的原因,我们首先根据经验,分析了可能导致连接被 Aborted 的几种常见情况: 客户端没有正确地关闭连接,没有调用 mysql_close() 函数。 客户端空闲时间超过了 wait_timeout 或 interactive_timeout 参数的秒数,服务器自动断开了连接。 客户端发送或接收的数据包大小超过了 max_allowed_packet 参数的值,导致连接中断。 客户端试图访问数据库,但没有权限,或者使用了错误的密码,或者连接包不包含正确的...
- 下一篇
youdeyunke [6.1.145] 版本发布
本次更新主要内容如下: 一、新增功能 新增excel导入数据功能,现可通过指定格式的Excel文件导入新房、二手房、一房一价数据,提高了数据录入的效率和准确性 新增图片搬家功能,管理员可输入图片所在网址,系统将自动爬取图片,保存到服务器中,方便管理员快速迁移图片资源。 新增文章搬家功能,管理员输入微信公众号文章的链接,系统能够自动爬取文章内容并保存至服务器,便于管理员迁移或备份微信公众号文章。 新增预约时间设置功能,小程序预约看房功能,管理后台可设置可预约的时间段,为管理员提供更灵活的预约服务。 二、修复问题 修复了系统初始化后,界面设计器页面数据异常问题。 修复了管理后台在创建文章时可能出现的重复创建问题 三、优化调整 优化了小程序预约看房页面。 优化了管理后台文章管理界面。 优化了管理后台图片搬家界面。 注意事项: 若您的项目在升级后发现界面设计器界面异常或报错,请尝试重新导入页面文件以解决问题。页面文件可从以下地址下载:页面文件下载地址
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS7安装Docker,走上虚拟化容器引擎之路
- Linux系统CentOS6、CentOS7手动修改IP地址
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS关闭SELinux安全模块
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Hadoop3单机部署,实现最简伪集群
- CentOS6,7,8上安装Nginx,支持https2.0的开启