深入浅出 MVCC —— 从零理解 MySQL 并发控制
一、从一个问题开始:为什么需要 MVCC?想象一个简单的银行账户表,两个事务同时操作:事务 A:正在读取你的账户余额,准备显示在网页上。事务 B:同时给你的账户转账 100 元,正在修改余额。在没有 MVCC 的传统锁机制下,为了保证数据一致性,要么让事务 A 等待事务 B 完成(加读锁),要么让事务 B 等待事务 A 完成(加写锁)。这种"读写互斥"的设计在高并发场景下会严重影响系统性能。...