Files
NoteBook/MySQL/7. 隔离级别.md
T
2025-09-26 14:55:31 +08:00

46 lines
1019 B
Markdown

# 隔离级别
- 读未提交
- 未提交事务的修改可见
- 读提交
- 提交事务的修改可见
- 可重复读
- 事务启动时看到数据保持一致
- 串行化
- 阻塞执行
**用于解决的问题**
- 脏读
- 读到未提交事务修改的数据
- 读提交解决此问题
- 不可重复读
- 在事务中多次读取数据不一致
- 可重复读解决此问题
- 幻读
- 多次查询符合某个条件的记录数不一致
- 串行化解决此问题
**具体实现**
- 读未提交
- 每次读取最新数据
- 读提交
- 每个语句执行前 `Read View`
- 可重复读
- 事务开始时 `Read View`
- 串行化
- 加读写锁
**Read View**
![Read View](https://cdn.xiaolincoding.com/gh/xiaolincoder/ImageHost4@main/mysql/%E4%BA%8B%E5%8A%A1%E9%9A%94%E7%A6%BB/readview%E7%BB%93%E6%9E%84.drawio.png)
事务划分——
- 已提交事务
- `trx_id < min_trx_id`
- 活跃事务
- `min_trx_id <= trx_id < max_trx_id`
- 未开始事务
- `trx_id >= max_trx_id`