执行计划
语法格式
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
打印查询计划步骤,提供如下设置:
header:打印每个步骤头,默认0表示关闭;description:打印每步说明,默认1表示开启;indexes:打印所使用的索引、过滤分区数和过滤索引粒度,默认为0表示关闭,❓仅适用于MergeTree表?action:打印每步明细,默认0表示关闭;json:以json格式打印,默认0表示关闭,建议使用TSVRAW格式以避免不必要的转义。
EXPLAIN PIPELINE
提供如下配置:
header:graph:compact:
EXPLAIN ESTIMATE
打印大概的行数、标记和分区信息,适用于MergeTree表引擎