You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL 11生产环境:临时表索引应在ANALYZE前还是后创建?

PostgreSQL 11中临时表索引与ANALYZE的执行顺序建议

应该先创建索引idx_pos_obj_id,再执行ANALYZE tmp_pos_source,原因如下:

  • 索引创建完成后再做ANALYZE,能让PostgreSQL收集到包含该索引的完整统计信息。后续查询使用这个临时表时,优化器可以基于这些统计数据,准确判断是否要利用索引生成更高效的执行计划。如果先跑ANALYZE再建索引,统计信息里不会包含新索引的相关数据,优化器可能无法充分发挥索引的性能优势。
  • 从资源消耗角度看,创建索引本身会对临时表做一次全表扫描,之后执行ANALYZE的扫描成本不会额外增加;反过来先ANALYZE再建索引,等于多做了一次全表扫描,平白浪费CPU和IO资源。

另外补充:PostgreSQL 11中,临时表的自动统计收集机制不如普通表完善,显式ANALYZE很有必要,但一定要等索引建好后再执行,才能让统计信息覆盖到索引维度。

内容的提问来源于stack exchange,提问作者Gerzzog

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 17:20:26