You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于Postgres MVCC可见性规则的疑问:xid101无法看到已提交新版本

PostgreSQL MVCC 可见性规则疑问

我正试图理解PostgreSQL的MVCC行为。默认情况下,PostgreSQL的MVCC通过为物理元组提供系统列xmin、xmax来区分版本。根据隔离级别不同,快照会在事务启动或SQL语句执行时依据可见性规则生成。

已知某场景下,快照的xmin为活跃事务的最小值100,xmax为下一个待分配的事务ID即102。此时元组的可见性规则为:

(xmin <= snapshot.xmin) AND (xmin NOT IN xip)

且

(snapshot.xmax < xmax OR xmax IS NULL OR xmax IN xip)

但按照这个规则,似乎会出现一种情况:事务ID为101的事务需要更新特定行时,无法看到快照中已提交的新版本。

我参考了相关资料学习该内容。


内容的提问来源于stack exchange,提问作者Kim Beob Woo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 12:39:55