Redrock Postgres 搜索 英文
版本: 9.3 / 9.4 / 9.5 / 9.6 / 10 / 11 / 12 / 13 / 14 / 15 / 16 / 17

65.3. 页面空闲空间映射 #

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

页面空闲空间映射组织为FSM页面的树形结构。底层FSM页面使用一个字节表示一个堆(或索引)页面上的可用空间,因此每个页面存储可用的空闲空间。更高级别汇总了更低级别的信息。

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

请参阅 src/backend/storage/freespace/README 以获取更多有关如何FSM如何构建、更新和搜索的信息。 pg_freespacemap 模块可用于检查存储在空闲空间映射中的信息。