MVCC 是 “多版本并发控制”(Multi-Version Concurrency Control)的缩写,它是一种并发控制的方法。这种方法广泛应用于数据库管理系统(DBMS),以便在多个用户访问同一数据时维持数据的一致性和隔离性。
在 MVCC 中,每当事务更新数据时,系统都会创建数据的新版本,而不是覆盖旧的数据。这样,正在进行读取操作的其他事务仍然可以看到数据的旧版本,从而避免了长时间的锁定和可能的死锁。
这种方法的优点是它可以提供高并发性能,并且在大多数情况下,读取操作不需要进行锁定。然而,它的缺点是需要更多的存储空间来保存数据的多个版本,以及更复杂的垃圾回收机制来删除不再需要的旧版本数据。
常见的使用 MVCC 的数据库系统包括 PostgreSQL、MySQL的InnoDB存储引擎以及Oracle等。