9.3 9.4 9.5 9.6 10 11 12
阿里云PostgreSQL 问题报告 纠错本页面

59.3. 自由空间映射

每个堆和索引关系,除了哈希索引, 都有一个空闲空间映射(FSM) 来跟踪关系中的可用空间。 FSM文件与关系的主数据文件放置在一起,有一个单独的分支与之对应, 以关系的filenode 值,加一个_fsm后缀来命名。 例如,如果一个关系的filenode是12345, 其FSM将存储在一个名为12345_fsm的文件中, 与主关系文件在相同的目录中。

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

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

参阅src/backend/storage/freespace/README了解FSM结构的详细信息, 以及更新和搜索策略。pg_freespacemap模块可以用来检测存储在空闲空间映射中的信息。

<
/BODY >