🔄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`
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
# 锁
|
||||||
|
|
||||||
|
**按加锁的范围分类**
|
||||||
|
|
||||||
|
- 全局锁
|
||||||
|
- 表级锁
|
||||||
|
- 行级锁
|
||||||
|
|
||||||
|
## 全局锁
|
||||||
|
|
||||||
|
- 全库逻辑备份
|
||||||
|
|
||||||
|
## 表级锁
|
||||||
|
|
||||||
|
1. 表锁
|
||||||
|
2. 元数据锁
|
||||||
|
3. 意向锁
|
||||||
|
4. Auto-INC 锁
|
||||||
|
|
||||||
|
### 行级锁
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
# 日志
|
||||||
|
|
||||||
|
- `undo log`
|
||||||
|
- 事务回滚
|
||||||
|
- MVCC
|
||||||
|
- `redo log`
|
||||||
|
- 持久性保证(掉电恢复)
|
||||||
|
- `binlog`
|
||||||
|
- 数据备份
|
||||||
|
- 主从复制
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
**两阶段提交**
|
||||||
|
- redo log
|
||||||
|
- binlog
|
||||||
|
|
||||||
|

|
||||||
Reference in New Issue
Block a user