Free Space Map
每个堆关系和索引关系(hash 索引除外)都有一个空闲空间映射( FSM ),用于跟踪该关系中的可用空间。它与主关系数据并列存放在一个独立的关系分支中,其名称由该关系的文件节点编号加上 _fsm 后缀构成。例如,如果某关系的文件节点是 12345,那么 FSM 就存储在名为 12345_fsm 的文件中,与主关系文件位于同一目录。 空闲空间映射被组织成一棵由 FSM 页面构成的树。最底层的 FSM 页面存储每个堆页面(或索引页面)上的可用空闲空间,每个这样的页面用一个字节表示。上层页面则聚合来…
当前查看 PostgreSQL 18。
中文定义与说明
存储结构 storage-fsm。
同版本中文手册节选
每个堆关系和索引关系(hash 索引除外)都有一个空闲空间映射(FSM),用于跟踪该关系中的可用空间。它与主关系数据并列存放在一个独立的关系分支中,其名称由该关系的文件节点编号加上
_fsm 后缀构成。例如,如果某关系的文件节点是 12345,那么 FSM 就存储在名为 12345_fsm
的文件中,与主关系文件位于同一目录。
空闲空间映射被组织成一棵由 FSM 页面构成的树。最底层的 FSM 页面存储每个堆页面(或索引页面)上的可用空闲空间,每个这样的页面用一个字节表示。上层页面则聚合来自下层的信息。
每个 FSM 页面内部都有一棵二叉树,以数组形式存储,每个节点占一个字节。每个叶子节点表示一个堆页面或下层 FSM 页面。每个非叶子节点中保存其子节点值中较大的那个,因此叶子节点中的最大值会保存在根节点。
请参见 src/backend/storage/freespace/README,了解 FSM 的结构以及如何更新和搜索它的更多细节。pg_freespacemap 模块可用于检查空闲空间映射中存储的信息。
说明
每个堆关系和索引关系(hash 索引除外)都有一个空闲空间映射( FSM ),用于跟踪该关系中的可用空间。它与主关系数据并列存放在一个独立的关系分支中,其名称由该关系的文件节点编号加上 _fsm 后缀构成。例如,如果某关系的文件节点是 12345,那么 FSM 就存储在名为 12345_fsm 的文件中,与主关系文件位于同一目录。 空闲空间映射被组织成一棵由 FSM 页面构成的树。最底层的 FSM 页面存储每个堆页面(或索引页面)上的可用空闲空间,每个这样的页面用一个字节表示。上层页面则聚合来自下层的信息。 每个 FSM 页面内部都有一棵二叉树,以数组形式存储,每个节点占一个字节。每个叶子节点表示一个堆页面或下层 FSM 页面。每个非叶子节点中保存其子节点值中较大的那个,因此叶子节点中的最大值会保存在根节点。 请参见 src/backend/storage/freespace/README ,了解 FSM 的结构以及如何更新和搜索它的更多细节。 pg_freespacemap 模块可用于检查空闲空间映射中存储的信息。
- 定义范围
- 同版本核心物理存储文档
相关条目
文档与源码
来源构建
- 版本
- 18.6
- 构建
- https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2
- 来源指纹
555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f
版本比较
PostgreSQL 17 → 18: 无变化。
比较已记录的接口与属性,排除来源指纹和构建元数据。某个样本中没有记录,不能据此判断实际引入或移除的版本。
相关条目
导出 JSON · 返回存储结构 · 收录范围为 PostgreSQL 10 至 20;最早采样版本不一定是实际引入版本。