# 多版本并发控制（Multi-Version Concurrency Control）

### 缩写：MVCC

### 简述

通过保留行的多个版本，使读事务看到某一快照而不阻塞多数写，写也不必阻塞多数读。是现代 OLTP 引擎实现隔离的核心机制之一。

### 为何出现

纯锁下读写互相阻塞，吞吐差。

### 使用场景

理解快照读、长查询与 vacuum/purge、回滚段膨胀。

### 在体系中的位置

与 undo/版本链、可见性判断、垃圾回收协同。

### 实践与应用

• 避免超长只读事务导致版本无法回收。
• 区分快照读与当前读（如加锁读）。
• 监控死元组/undo 与自动清理。

### 注意事项

• MVCC 不消除写写冲突。
• 快照过旧可能导致「看不到最新提交」的业务误解。

### 对比与易混

MVCC vs 纯锁；快照隔离 vs 可串行化。

### 信号与度量

purge/vacuum 延迟、undo 大小、长事务年龄。

### 关联术语

• 隔离级别：快照读常见配套
• 锁：与 MVCC 配合或替代的路径
• 事务：版本可见性边界
