判断慢查询是规划问题还是执行问题
EXPLAIN ANALYZE 同时给出 Planning Time 和 Execution Time,但工程师往往只看后者。在一张按天分了 500 个分区的表上,规划一条简单聚合查询的耗时可能是执行的 9 倍,因为 planner 必须逐个加载并评估分区才能完成剪枝;继续加索引只会让候选路径更多。执行侧的问题特征完全不同:溢写临时文件、大量 buffer 读取、过滤条件丢掉大批数据。对存在函数依赖的列可以用 CREATE STATISTICS 的 dependencies 改善估算,prepared statement 则能缓存计划、摊薄重复规划的开销。



