集中式事务
单个节点参与的事务,单节点操作执行成功集中式事务即成功,单节点操作执行失败则集中式事务回滚
1.扁平式事务
- 一般扁平事务:由begin或start transaction开始,由commit或rollback结束的简单事务,完整commit或完整rollback
- 带保存点的扁平事务:在一般扁平事务基础上可以设置保存点,允许该事务回滚到保存点,相当于部分“回滚,一般扁平事务相当于保存点在事务开头的一般扁平事务
2.链式事务
在带保存点的扁平事务的基础上,将多个带保存点的扁平事务连接,前一个事务的提交和后一个事务的开始为原子操作,这样前一个事务的上下文就可以被后一个事务获取,链式事务本质是传递上下文的多个事务
3.嵌套事务
树状事务组织形式,根节点为顶层事务,每一棵子树都可以是嵌套事务,叶子节点为扁平事务,嵌套事务由顶层事务统一控制提交,但如果任意子事务回滚会导致整个嵌套事务回滚
4.自治事务
自治事务在嵌套事务的基础上,让子树管理其下事务而不受顶层事务节制,自治事务提交后即使顶层事务回滚也不会造成自治事务回滚。自治事务常用于在外层事务记录日志,无论外层成功提交还是失败回滚,自治事务都可以记录日志。MySQL原生不支持自治事务,Oracle原生支持。
分布式事务
由多个节点参与的事务,各个节点操作都成功执行则分布式事务成功,任意节点操作失败则分布式事务全部回滚