fillfactor
SP-GiST填充因子
控制索引方法尝试将索引页填充到多满。对于 B-树,在初始构建索引时,以及在右侧扩展索引(加入新的最大键值)时,叶子页都会填充到这一百分比。如果页面随后变成全满,就会发生分裂,从而导致磁盘上的索引结构碎片化。B-树默认使用 90 的填充因子,但也可以选择 10 到 100 之间的任意整数值。 对预计会有大量插入和/或更新的表,在 CREATE INDEX 时为 B-树索引设置较低的填充因子会有好处(即在向表批量装载数据之后)。50 到 90 范围内的值可以有效地“平滑”B-树索引生命周期早期页面分裂的速率(这样降低填充因子甚至可能减少页面分裂的绝对数量,不过这一效果高度依赖工作负载)。第 65.1.4.2 节中描述的 B-树自底向上索引删除技术依赖于页面上有一些“额外”空间来存储“额外”的元组版本,因此也会受到填充因子影响(不过通常影响不大)。 在某些其他特定情况下,在 CREATE INDEX 时将填充因子提高到 100 可能有助于最大化空间利用率。只有在完全确定该表是静态的(即永远不会受到插入或更新影响)时,才应考虑这样做。否则,将填充因子设为 100 有损害性能的风险:即便只有少量更新或插入,也会导致页面突然大量分裂。 其他索引方法以不同但大致类似的方式使用填充因子;默认填充因子因方法而异。
当前查看 PostgreSQL 18。
中文定义与说明
控制索引方法尝试将索引页填充到多满。对于 B-树,在初始构建索引时,以及在右侧扩展索引(加入新的最大键值)时,叶子页都会填充到这一百分比。如果页面随后变成全满,就会发生分裂,从而导致磁盘上的索引结构碎片化。B-树默认使用 90 的填充因子,但也可以选择 10 到 100 之间的任意整数值。
对预计会有大量插入和/或更新的表,在 CREATE INDEX
时为 B-树索引设置较低的填充因子会有好处(即在向表批量装载数据之后)。50 到 90 范围内的值可以有效地“平滑”B-树索引生命周期早期页面分裂的速率(这样降低填充因子甚至可能减少页面分裂的绝对数量,不过这一效果高度依赖工作负载)。第 65.1.4.2 节中描述的 B-树自底向上索引删除技术依赖于页面上有一些“额外”空间来存储“额外”的元组版本,因此也会受到填充因子影响(不过通常影响不大)。
在某些其他特定情况下,在 CREATE INDEX 时将填充因子提高到 100 可能有助于最大化空间利用率。只有在完全确定该表是静态的(即永远不会受到插入或更新影响)时,才应考虑这样做。否则,将填充因子设为 100 有损害性能的风险:即便只有少量更新或插入,也会导致页面突然大量分裂。
其他索引方法以不同但大致类似的方式使用填充因子;默认填充因子因方法而异。
说明
控制索引方法尝试将索引页填充到多满。对于 B-树,在初始构建索引时,以及在右侧扩展索引(加入新的最大键值)时,叶子页都会填充到这一百分比。如果页面随后变成全满,就会发生分裂,从而导致磁盘上的索引结构碎片化。B-树默认使用 90 的填充因子,但也可以选择 10 到 100 之间的任意整数值。 对预计会有大量插入和/或更新的表,在 CREATE INDEX 时为 B-树索引设置较低的填充因子会有好处(即在向表批量装载数据之后)。50 到 90 范围内的值可以有效地“平滑”B-树索引生命周期早期页面分裂的速率(这样降低填充因子甚至可能减少页面分裂的绝对数量,不过这一效果高度依赖工作负载)。第 65.1.4.2 节中描述的 B-树自底向上索引删除技术依赖于页面上有一些“额外”空间来存储“额外”的元组版本,因此也会受到填充因子影响(不过通常影响不大)。 在某些其他特定情况下,在 CREATE INDEX 时将填充因子提高到 100 可能有助于最大化空间利用率。只有在完全确定该表是静态的(即永远不会受到插入或更新影响)时,才应考虑这样做。否则,将填充因子设为 100 有损害性能的风险:即便只有少量更新或插入,也会导致页面突然大量分裂。 其他索引方法以不同但大致类似的方式使用填充因子;默认填充因子因方法而异。
- 适用对象
- SP-GiST 索引
- 取值类型
- 整数
用法
WITH (fillfactor = value)索引访问方法
此条目适用于 SP-GiST 索引。使用 CREATE INDEX 的 WITH 子句设置,或用 ALTER INDEX SET 修改已有索引。参数的行为、默认值与适用范围应按该索引方法阅读。
手册将四种索引方法的 fillfactor 合并说明,其中的 90 默认值及 10–100 取值范围明确针对 B-tree,不能直接套用到本索引方法。
相关条目
文档与源码
查看来源构建
- 版本
- 18.6
- 构建
- Local English manual 18.6
- 来源指纹
eb6c2292fdf28e1b4635ab478eec3919411cdf4a6c07553387870e26201f3744
返回存储参数 · 此条目的收录范围为 PostgreSQL 10 至 20;起点不一定是实际引入版本。