如何看懂postgresql的explain 结果
PostgreSQL的EXPLAIN命令用于显示查询的执行计划。执行计划显示了PostgreSQL查询优化器如何解析查询以及如何执行查询。
要理解EXPLAIN的输出,需要关注几个关键列:
- Plan: 显示计划中的步骤。
- Relation: 表示参与查询的表。
- Selector: 表示查询条件。
- Cost: 表示执行计划的成本估算。
- Rows: 估算返回的行数。
- Width: 表示每行的平均宽度。
- Actual Time: 实际花费的时间。
下面是一个简单的例子:
EXPLAIN SELECT * FROM my_table WHERE my_column = 'some_value';
输出可能如下:
QUERY PLAN
------------------------------------------------------------
Seq Scan on my_table (cost=0.00..10.00 rows=100 width=404)
Filter: (my_column = 'some_value'::name)
(2 rows)
在这个例子中:
- Seq Scan on my\_table: 表示对
my_table
执行顺序扫描(Sequential Scan)。 - (cost=0.00..10.00 rows=100 width=404): 显示了成本估算(Cost)、返回行数(Rows)和每行宽度(Width)。
- Filter: 表示将应用的过滤条件。
根据这些信息,你可以判断查询的性能,并可能用于优化查询。如果你看到多个步骤,你可能需要关注它们的顺序,以了解查询是如何执行的。
要获取更详细的执行计划,可以使用EXPLAIN ANALYZE
,它将实际执行查询并收集实际使用的计划的统计信息。
评论已关闭