第十三章. 多版本并行控制

内容
介绍
事务隔离
读已提交隔离级别
可串行化隔离级别
锁和表
锁和索引
应用层的数据完整性检查
多版本并行控制(Multi-Version Concurrency Control (MVCC))是用于提高数据库在一个多用户环境下性能的高级技术。Vadim Mikheev 为 Postgres 提供了MVCC的实现。

介绍

与其他使用锁来进行并行控制的数据库系统不同,Postgres 利用多版本模型来维护数据的一致性。这就意味着当检索数据库时,每个事务都看到一个数据的一段时间前的快照(一个 数据库版本),而不管正在处理的数据当前的状态。这样,如果对每个数据库会话进行 事务隔离,就可以避免一个事务看到因为其它并行的事务更新同一行数据而导致的不连贯的数据。

多版本和锁定模型的主要区别是在 MVCC 里,对检索(读)数据的锁要求与写数据的锁要求不冲突,所以读不会阻塞写,而写也从不阻塞读。