PostgreSQL 9.3.1 中文手册 | ||||
---|---|---|---|---|
Prev | Up | Chapter 58. 数据库物理存储 | Next |
每个堆和索引关系,除了哈希索引, 有个自由空间映射(FSM) 来保持跟踪关系中可用的空间。 将同时在独立的关系叉文件存储主关系数据, 以关系的filenode 编号命名,加上一个_fsm后缀。 例如,如果一个关系的filenode是12345, 存储FSM在一个叫12345_fsm的文件里, 在与主关系文件相同目录里。
自由空间映射组织为一个FSM页树。 FSM页底层存储每个堆(或索引)页上可用的自由空间, 使用一个字节来代表每一个如页。 高级别的从低级别聚合信息。
每个FSM页是一个二叉树,存储在一个数组, 每个节点一个字节。每个叶节点代表一个堆页,或低级别的FSM页。 在每个非叶节点,存储其子节点值的高级别的值。 因此在根节点存储叶节点的最大值。
参阅src/backend/storage/freespace/README关于更详细的FSM是怎样的结构, 怎样更新和搜索它。pg_freespacemap模块可以用来审查存储在自由空间映射的信息。