事务管理¶
概述¶
事务
事务是数据库操作的逻辑单元,具有ACID特性。
ACID特性¶
ACID特性
- 原子性(A): 事务要么全做,要么全不做
- 一致性(C): 事务保持数据一致性
- 隔离性(I): 事务间互不干扰
- 持久性(D): 事务提交后永久有效
事务状态¶
事务状态
- 活动: 事务正在执行
- 部分提交: 操作完成,未提交
- 提交: 事务成功完成
- 失败: 事务无法继续
- 中止: 事务回滚
并发控制¶
并发问题¶
并发问题
- 丢失更新: 两事务同时更新同一数据
- 读脏数据: 读到未提交的数据
- 不可重复读: 同一事务两次读取结果不同
- 幻读: 同一查询返回不同行数
封锁协议¶
封锁协议
- 一级封锁协议: 防止丢失更新
- 二级封锁协议: 防止读脏数据 三级封锁协议: 防止不可重复读