mysql事务

MySql事务

1.扁平事务:

是事务类型中最简单的一种,但是在实际生产环境中,这可能是使用最频繁的事务,在扁平事务中,所有操作都处于同一层次,其由BEGIN WORK开始,由COMMIT WORK或ROLLBACK WORK结束,其间的操作是源自的,要么都执行,要么都回滚,因此扁平事务是应用程序称为原子操作的的基本组成模块

2.带有保存点的扁平事务:

除了支持扁平事务支持的操作外,允许在事务执行过程中回滚同一事务中较早的一个状态。这是因为某些事务可能在执行过程中出现的错误并不会导致所有的操作都无效,放弃整个事务不合乎要求,开销太大,保存点用来通知事务系统应该记住事务当前的状态,以便当之后发生错误时,事务能回到保存点当时的状态。

2.带有保存点的扁平事务:

除了支持扁平事务支持的操作外,允许在事务执行过程中回滚同一事务中较早的一个状态。这是因为某些事务可能在执行过程中出现的错误并不会导致所有的操作都无效,放弃整个事务不合乎要求,开销太大,保存点用来通知事务系统应该记住事务当前的状态,以便当之后发生错误时,事务能回到保存点当时的状态。

3.链事务:

在提交一个事务时,释放不需要的数据对象,将必要的处理上下文隐式地传给下一个要开始的事务,提交事务操作和开始下一个事务操作 将合并为一个原子操作,这意味着下一个事务将看到上一个事务的结果

4.嵌套事务:

(1)嵌套事务是由若干事务组成的一棵树,子树既可以是嵌套事务也可以是扁平事务

(2)处在叶节点的事务是扁平事务,但是每个事务从根到叶节点的距离可以说是不同的

(3)位于根节点的事务称为顶层事务,其他称为自事务。事务的前驱称(predecessor)为父事务(parent),事务的下一层称为儿子事务(child)

(4)子事务既可以提交也可以回滚。但是它的提交操作并不马上生效。除非其父事务已经提交。因此可以推论出,任何子事务都在顶层事务提交后才真正的提交

(5)树中的任意事务回滚会引起它的所有子事务一同回滚,故子事务仅保留ACI特性而不具有D特性

5.分布式事务:

分布式事务 通常是一个分布式环境下运行的扁平事务,因此需要根据数据所在位置访问网络中的不同节点

对于InnoDB存储引擎来说,其支持扁平事务,带保存点的事务,链事务,分布式事务。不支持嵌套事务。