2025年9月25日: PostgreSQL 18 发布!
支持的版本: 当前 (18) / 17 / 16 / 15 / 14 / 13
开发版本: devel
不支持的版本: 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2

13.1. 简介 #

PostgreSQL 为开发人员提供了丰富的工具来管理数据的并发访问。在内部,数据一致性通过使用多版本模型(多版本并发控制,MVCC)。这意味着每个 SQL 语句都会看到一个过去某个时间点的数据快照(一个数据库版本),而不管底层数据的当前状态。这可以防止语句看到由并发事务在同一数据行上执行更新所产生的不一致数据,从而为每个数据库会话提供事务隔离MVCC通过摈弃传统数据库系统的锁定方法,它最大限度地减少了锁的争用,以便在多用户环境中实现合理的性能。

使用MVCC而不是锁定的并发控制模型的最大优点是,在MVCC中,用于查询(读取)数据的锁不会与用于写入数据的锁发生冲突,因此读取永远不会阻塞写入,写入也永远不会阻塞读取。PostgreSQL 即使在提供最严格的事务隔离级别时,也通过使用创新的可串行化快照隔离SSI)级别来维持此保证。

PostgreSQL 还为那些通常不需要完整事务隔离并且更喜欢显式管理特定冲突点的应用程序提供了表级和行级锁定功能。然而,正确使用MVCC通常会比使用锁提供更好的性能。此外,应用程序定义的建议锁提供了一种获取与单个事务无关的锁的机制。

提交更正

如果您在文档中看到任何不正确、与您对特定功能的使用经验不符或需要进一步澄清的内容,请使用此表格报告文档问题。