14.1. 使用 EXPLAIN
PostgreSQL 会为其接收的每个查询设计一个查询计划。选择正确的计划以匹配查询结构和数据属性对于获得良好性能至关重要,因此系统包含一个复杂的规划器,该规划器尝试选择好的计划。您可以使用 EXPLAIN
命令查看规划器为任何查询创建的查询计划。计划解读是一门艺术,需要一定的经验才能掌握,但本节旨在涵盖其基础知识。
本节中的示例取自执行 VACUUM ANALYZE
后的回归测试数据库,并使用了 v17 开发版本。如果您自己尝试这些示例,应该能获得类似的结果,但您的估计成本和行数可能会略有不同,因为 ANALYZE
的统计数据是随机抽样而非精确的,并且成本本身在某种程度上依赖于平台。
这些示例使用 EXPLAIN
默认的“文本”输出格式,该格式紧凑且方便人类阅读。如果您想将 EXPLAIN
的输出提供给程序进行进一步分析,则应改用其机器可读的输出格式之一(XML、JSON 或 YAML)。