Postgresql Explain 入门

张彤 2022年09月10日 998次浏览

Postgresql explain 使用手册

postgresql为每一个查询产生一个查询计划,选择正确的查询结构(通过系统统计采样)和数据属性(字段类型)对于提升性能非常关键。

系统准备了一个非常复杂的规划器 来选择开销最小的计划。

可以使用EXPLAIN来查看规划器为每个查询生成的查询计划是什么。

本例中,是使用默认的TEXT输出,其他输出,比如XML,JSON,YAML,更有利于机器读取和分析。

本例以一张记录攻击IP地址表tb_ip_attack为例,上面记载了各类猜测密码的ip地址,当然这些表内容并不关键。

下面的例子展示了json格式的返回内容

weather=# explain(format json) select * from tb_ip_attack limit 10;
                 QUERY PLAN                 
--------------------------------------------
 [                                         +
   {                                       +
     "Plan": {                             +
       "Node Type": "Limit",               +
       "Parallel Aware": false,            +
       "Startup Cost": 0.00,               +
       "Total Cost": 0.40,                 +
       "Plan Rows": 10,                    +
       "Plan Width": 201,                  +
       "Plans": [                          +
         {                                 +
           "Node Type": "Seq Scan",        +
           "Parent Re