每个堆和索引关系(哈希索引除外)都有一个空闲空间映射 (FSM),用于跟踪关系中可用的空间。 它与主关系数据一起存储在单独的关系分支中,该分支以关系的文件节点号加上 _fsm
后缀命名。 例如,如果关系的文件节点是 12345,则FSM存储在名为 12345_fsm
的文件中,该文件与主关系文件位于同一目录中。
空闲空间映射组织为FSM页面的树。 底层FSM页面使用一个字节来表示每个页面,存储每个堆(或索引)页面的可用空间。 上层汇总来自下层的信息。
在每个FSM页面中,是一个二叉树,存储在一个数组中,每个节点一个字节。 每个叶节点代表一个堆页面或一个较低级别的FSM页面。 在每个非叶节点中,存储其子节点中较高的值。 因此,叶节点中的最大值存储在根节点中。
有关FSM的结构以及如何更新和搜索的更多详细信息,请参阅 src/backend/storage/freespace/README
。 pg_freespacemap 模块可用于检查空闲空间映射中存储的信息。
如果您在文档中看到任何不正确、与您使用特定功能的体验不符或需要进一步澄清的内容,请使用此表格报告文档问题。