Skip to main content

执行计划

语法格式​

EXPLAIN [AST | SYNTAX | PLAN | PIPELINE | TABLE OVERRIDE] [setting = value, ...]
[
SELECT ... |
tableFunction(...) [COLUMNS (...)] [ORDER BY ...] [PARTITION BY ...] [PRIMARY KEY] [SAMPLE BY ...] [TTL ...]
]
[FORMAT ...]

由如上语法格式可以看到EXPLAIN分为如下4种:AST、SYNTAX、PLAN、PIPELINE,不写默认为PLAN。

EXPLAIN AST​

打印查询AST,支持所有查询,不仅仅限于SELECT语句。

EXPLAIN SYNTAX​

打印查询AST经过优化后的结果

EXPLAIN PLAN​

打印查询计划步骤,提供如下设置:

  1. header:打印每个步骤头,默认0表示关闭;
  2. description:打印每步说明,默认1表示开启;
  3. indexes:打印所使用的索引、过滤分区数和过滤索引粒度,默认为0表示关闭,❓仅适用于MergeTree表?
  4. action:打印每步明细,默认0表示关闭;
  5. json:以json格式打印,默认0表示关闭,建议使用TSVRAW格式以避免不必要的转义。

EXPLAIN PIPELINE​

提供如下配置:

  1. header:
  2. graph:
  3. compact:

EXPLAIN ESTIMATE​

打印大概的行数、标记和分区信息,适用于MergeTree表引擎

EXPLAIN TABLE OVERRIDE​