WebMD
本页大纲

多版本并发控制(Multi-Version Concurrency Control)

缩写:MVCC

简述

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

为何出现

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

使用场景

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

在体系中的位置

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

实践与应用

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

注意事项

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

对比与易混

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

信号与度量

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

关联术语

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