历史版本。 PostgreSQL 9.0 已结束支持。 2015-10-08. 请参阅 当前版本手册.
54.4. 可见性映射 #
每个堆关系都有一个可见性映射(VM),用于跟踪哪些页面只包含已知对所有活动事务都可见的元组。它与主关系数据并列存放在一个独立的关系分支中,名称由关系的 filenode 编号加上 _vm 后缀构成。例如,如果某关系的
filenode 是 12345,那么 VM 会存储在名为 12345_vm 的文件中,与主关系文件位于同一目录。请注意,索引没有 VM。
可见性映射只是为每个堆页面存储一个位。该位被置位表示页面上的所有元组都已知对所有事务可见。这意味着该页面不包含任何需要被清理的元组;将来它还可以用来避免为可见性检查而访问该页面。这个映射是保守的,也就是说,只要某个位被置位,我们就能确定相应条件确实成立;但如果某个位没有置位,该条件既可能为真,也可能不为真。