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

65.3. 空闲空间映射 #

每个堆和索引关系(哈希索引除外)都有一个空闲空间映射(FSM)用于跟踪关系中的可用空间。它与主关系数据一起存储在一个单独的关系分支中,以关系的 filenode 号命名,并加上 _fsm 后缀。例如,如果关系的 filenode 为 12345,则FSM存储在名为 12345_fsm 的文件中,该文件与主关系文件位于同一目录中。

空闲空间映射被组织成一棵FSM页树。底层FSM页使用一个字节来表示每个这样的页,存储每个堆(或索引)页上的可用空间。上层从下层聚合信息。

在每个FSM页中,是一个二叉树,存储在一个数组中,每个节点一个字节。每个叶子节点代表一个堆页,或一个更低级别的FSM页。在每个非叶子节点中,存储其子节点中较高的值。因此,叶子节点中的最大值存储在根节点中。

参见 src/backend/storage/freespace/README 以了解有关FSM的结构、更新和搜索方式的更多详细信息。 pg_freespacemap 模块可用于检查存储在空闲空间映射中的信息。

提交更正

如果您在文档中发现任何不正确的内容,与您对特定功能的体验不符,或者需要进一步说明,请使用 此表格 报告文档问题。