如果我错了也承担,认定这就是答案,就算有人嘲笑我极端 —— 2022/11/14
事务就是可简单可复杂 SQL 语句,其是访问并更新数据库中各种数据项的一个程序执行单元,目的是保证在事务中的操作要么都做修改,要么都不做修改。
事务具有严格的定义,必须同时满足四个特性,也就是我们常说的 ACID 标准(数据库厂商出于各种目的,并不一定严格的满足事务的ACID标准,这可能不会带来严重的后果,反而会带来性能的提升,但是 MySQL 的 InnoDB 存储引擎完全遵循和满足事务的 AICD 特性),关于事务 ACID 的具体介绍如下:
(1)扁平事务
事务类型中最简单的一种,在扁平事务中,所有操作都处于同一层次,要么都执行,要么都回滚,其主要限制是不能提交或者回滚事务的一部分。
(2)带有保存点的扁平事务
带有保存点的扁平事务除了支持扁平事务支持操作外,允许事务在执行过程中回滚到同一事务中较早的一个状态
(3)链事务
链事务可视为保存点模式的一种变种。带有保存点的扁平事务,当系统发生奔溃时,所有的保存点都会丢失。链事务链事务的回滚只限于当前事务,即其只能恢复到最近的一个保存点。
链事务的思想是:在提交一个事务时,释放不需要的数据对象,将必要的处理上下文隐式地传给下一个要开始的事务。注意,提交事务操作和开始下一个事务操作将合并为一个原子操作。这意味着下一个事务将看到上一个事务的结果,就好像在一个事务中进行的一样。

(4)嵌套事务
嵌套事务是层次架构框架,由顶层事务控制各个层次的事务。

(5)分布式事务
分布式事务指在分布式环境下允许的扁平事务,因此需要根据数据所在位置访问网络中的不同节点。
MySQL 的 InnoDB 存储引擎除了不支持嵌套事务(可用带保存点的扁平事务模拟串行的嵌套事务),其他四种事务都支持。