可见映射

PostgreSQL 9.4.4 中文手册
上一页 | 上一级 | 章 59. 数据库物理存储 | 下一页

# 59.4. 可见映射

每个堆关系有一个可见映射（VM），用于跟踪哪些页包含对所有活动事务均可见的元组。可见映射文件与关系的主数据文件放置在一起，有一个独立的分支文件与之对应，以关系的filenode值加上一个`_vm`后缀命名。例如， 如果一个关系的filenode是12345，VM存储在一个叫`12345_vm`的文件中，与主关系文件在同一目录。请注意索引没有VM。

可见映射简单地为每个堆页存储1个比特位。 如果该位被设置，则意味着该页上所有的元组对于所有事务都是可见的。 这意味着该页不包含任何需要清理的行。使用index-only扫描 时，可以在只使用索引元组的情况下使用这些信息对查询做出回复。

这个意义上的映射是保守的，我们确信无论何时只要位被设置，则条件为真，但如果该位没有被设置，则条件有可能是真，也可能不是真。 可见映射位只能通过清理（vacuum）来设置，但页面上的任何数据修改均可以将该位清空。

上一页 | 起始页 | 下一页
自由空间映射 | 上一级 | 初始化分支