MySQL 核心模块揭秘 | 04 期 | 终于要启动事务了

作者:操盛春,爱可生技术专家,公众号『一树一溪』作者,专注于研究 MySQL 和 OceanBase 源码。爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。



本文基于 MySQL 8.0.32 源码,存储引擎为 InnoDB。

目录

  • 1. 启动事务

  • 2. 读事务

  • 3. 只读事务

  • 4. 读写事务

  • 5. 内部事务

  • 6. 总结

正文

1. 启动事务

在《BEGIN 语句会马上启动事务吗?》这篇文章中,我们介绍过开始一个事务的 8 种 SQL 语句:

/* 1 */ BEGIN<br>/* 2 */ BEGIN WORK<br>/* 3 */ START TRANSACTION<br>/* 4 */ START TRANSACTION READ WRITE<br>/* 5 */ START TRANSACTION READ ONLY<br>/* 6 */ START TRANSACTION WITH CONSISTENT SNAPSHOT<br>/* 7 */ START TRANSACTION WITH CONSISTENT SNAPSHOT, READ WRITE<br>/* 8 */ START TRANSACTION WITH CONSISTENT SNAPSHOT, READ ONLY<br>