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种:ASTSYNTAXPLANPIPELINE不写默认为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