Mysql事务
事务是一组的逻辑操作,该操作只有执行成功和失败两种状态。
事务的特征
- 原子性:执行的最终状态只有成功和失败这两种;
- 一致性:事务执行之前和执行之后,数据始终处于一致的状态;
- 持久性:事务提交完成后,对数据的操作会被持久化到数据库中,且不会被回滚;
- 隔离性:并发执行的多个事务之间互不干扰。
事务的类型
- 扁平事务:常见的使用begin/start transaction 开始,commit/rollback结束的事务。事务全部执行成功,或全部执行失败;
- 保存点扁平事务:在扁平事务的基础上,添加有事务保存点,可以进行回滚至保存点的操作(也就是事务的部分回滚);
- 设置事务保存点:
savepoint pointName
- 回滚至保存点:
rollback to pointName
- 删除保存点:
release savepoint pointName
- 设置事务保存点:
- 链式事务:事务的提交操作与下一个事务的开始操作为原子不可分,没有间隔;
- 嵌套事务:事务操作包含内部子事务,子事务提交后,顶层事务不会全部提交,只有顶层事务提交完成后,整个事务才算提交完成;
- 分布式事务:
不同数据库
、不同服务器
的各个分支事务要全部提交成功,或全部提交失败。