🔄Update: MySQL
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
# 隔离级别
|
||||
|
||||
- 读未提交
|
||||
- 未提交事务的修改可见
|
||||
- 读提交
|
||||
- 提交事务的修改可见
|
||||
- 可重复读
|
||||
- 事务启动时看到数据保持一致
|
||||
- 串行化
|
||||
- 阻塞执行
|
||||
|
||||
**用于解决的问题**
|
||||
|
||||
- 脏读
|
||||
- 读到未提交事务修改的数据
|
||||
- 读提交解决此问题
|
||||
- 不可重复读
|
||||
- 在事务中多次读取数据不一致
|
||||
- 可重复读解决此问题
|
||||
- 幻读
|
||||
- 多次查询符合某个条件的记录数不一致
|
||||
- 串行化解决此问题
|
||||
|
||||
**具体实现**
|
||||
|
||||
- 读未提交
|
||||
- 每次读取最新数据
|
||||
- 读提交
|
||||
- 每个语句执行前 `Read View`
|
||||
- 可重复读
|
||||
- 事务开始时 `Read View`
|
||||
- 串行化
|
||||
- 加读写锁
|
||||
|
||||
**Read View**
|
||||
|
||||

|
||||
|
||||
事务划分——
|
||||
- 已提交事务
|
||||
- `trx_id < min_trx_id`
|
||||
- 活跃事务
|
||||
- `min_trx_id <= trx_id < max_trx_id`
|
||||
- 未开始事务
|
||||
- `trx_id >= max_trx_id`
|
||||
Reference in New Issue
Block a user