↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

支持中的版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发中的版本: 19 / 20devel
已结束支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1 / 7.0 / 6.5
历史版本。 PostgreSQL 7.1 已结束支持。 请参阅 当前版本手册.

第 9 章 多版本并发控制

摘要

多版本并发控制(MVCC)是一种在多用户环境下提升数据库性能的高级技术。Vadim Mikheev()为 Postgres 提供了实现。

9.1. 介绍 #

与大多数使用锁进行并发控制的其他数据库系统不同,Postgres 通过使用多版本模型来维护数据一致性。这意味着,在查询数据库时,每个事务看到的都是某个较早时刻的数据快照(即一个数据库版本),而不受底层数据当前状态的影响。这样可以保护事务,使其看不到由(其他)并发事务在同一数据行上执行更新所产生的不一致数据,从而为每个数据库会话提供事务隔离。

多版本模型与锁模型的主要区别在于:在 MVCC 中,为查询(读取)数据而获取的锁不会与为写入数据而获取的锁冲突,因此读取永远不会阻塞写入,写入也永远不会阻塞读取。

报告文档问题

阅读 上游文档. 反馈更正前请先核对 当前版本手册.