目标
索引看起来远大于其覆盖的数据,但没人能说清到底浪费了多少空间。本配方安装 pgstattuple 扩展并采样目标索引,读取叶密度与空闲空间得到膨胀估算,再与表体积对比,判断低基数索引接近表体积即为膨胀信号,从而在安排 REINDEX 前有量化依据,并提醒并发重建需要额外磁盘。
步骤要点
- 安装 pgstattuple 扩展并采样候选索引。
- 把索引体积与其支撑的表体积对比。
- 流量低时运行,或使用 pgstatindex 快速估算。
- 若确有膨胀,评估并发重建所需的磁盘与时间。
CREATE EXTENSION IF NOT EXISTS pgstattuple;
SELECT * FROM pgstatindex('public.idx_events_created');
排错提示
- 活跃写入的索引估算会有噪声。
- REINDEX CONCURRENTLY 需要额外磁盘和时间。
- 不覆盖表膨胀等其他来源。
适用边界
- 估算在频繁写入时不稳定。
- 不覆盖表膨胀问题。