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