数据库并发控制:锁机制、事务隔离及乐观悲观策略
该思维导图概述了并发控制的概念、重要性和类型。并发控制旨在确保多个事务同时执行时数据的一致性,提高系统性能。它主要分为悲观并发控制(依赖锁机制,包括错误恢复)和乐观并发控制(依赖版本控制,包括提交时检查)两种类型,以及基于行级版本的快照隔离。锁机制包括共享锁(允许读)、排他锁(限制写)和意图锁(提高并发性)。事务隔离级别则有未提交读、已提交读、可重复读和串行化四个等级,隔离级别越高,数据一致性越强,并发性越低。
源码
# 数据库并发控制
## 定义
- 确保多个事务同时执行时的一致性
## 重要性
- 提高系统性能
- 增强数据一致性
## 类型
### 悲观并发控制
- 依赖于:锁机制
- 特点
- 适用于高冲突场景
- 可能导致死锁
- 包括
- 错误恢复
- 回滚机制
- 日志记录
### 乐观并发控制
- 依赖于:版本控制
- 特点
- 适用于低冲突场景
- 提交时检查版本
- 包括
- 提交时检查
- 检查版本一致性
- 冲突处理策略
### 快照隔离
- 依赖于:行级版本
- 特点
- 并发读取
- 保证数据一致性
## 锁机制
### 共享锁
- 特点
- 允许读操作
- 多个事务可同时持有
- 适用场景
- 查询操作
### 排他锁
- 特点
- 限制写操作
- 只能有一个事务持有
- 适用场景
- 数据更新
### 意图锁
- 特点
- 提高并发性
- 用于表级锁配合行级锁
- 类型
- 意图共享锁
- 意图排他锁
## 事务隔离级别
### 未提交读
- 特点
- 允许读取未提交数据
- 提高并发性
- 数据不一致风险
### 已提交读
- 特点
- 只能读取已提交数据
- 阻止脏读
### 可重复读
- 特点
- 确保重复读的结果一致
- 阻止不可重复读
### 串行化
- 特点
- 最严格的隔离级别
- 阻止幻读
- 性能最低
图片