点击上方“IT那活儿”公众号--专注于企业全栈运维技术分享,不管IT什么活儿,干就完了!!!
执行计划简介
执行计划是进行查询调优的重要参考。ClickHouse 中,可以使用explain语句很方便的查看 SQL 语句的执行计划。
在 ClickHouse 20.6 版本之前要查看 SQL 语句的执行计划需要设置日志级别为 trace 才能可以看到,并且只能真正执行 SQL后才能在执行日志里面查看。在 20.6 版本引入了原生的执行计划的语法,在 20.6.3 版本成为正式版本的功能。
基本语法
EXPLAIN [AST | SYNTAX | PLAN | PIPELINE | TABLE OVERRIDE] [setting = value, ...]
[
SELECT ... |
tableFunction(...) [COLUMNS (...)] [ORDER BY ...] [PARTITION BY ...] [PRIMARY KEY] [SAMPLE BY ...] [TTL ...]
]
[FORMAT ...]
2.1 AST
查看编译之后的语法树,支持查看所有类型的语句,不仅仅是select 语句:

2.2 SYNTAX
用于优化语法,有时我们指定的查询语句未必是最优的,那么 ClickHouse 在底层会进行优化,EXPLAIN SYNTAX 可以返回对一条 SQL 语句进行优化后的结果。通过对比优化前和优化后的 SQL 语句,可以有助于我们理解 ClickHouse 的优化机制。

2.3 PLAN
用于查看执行计划,默认选项,可以指定五个参数:
header
打印计划中各个步骤的 header 说明,默认 0(关闭);
description
打印计划中各个步骤的描述,默认 1(开启);
indexes
显示索引使用情况,默认 0(关闭);
actions
打印计划中各个步骤的详细信息,默认 0(关闭);
json
以 JSON 格式打印执行计划的详细信息,默认 0(关闭)。

2.4 PIPELINE
用于查看 pipeline 计划,可以指定三个参数:
header
打印计划中各个步骤的 header 说明,默认 0(关闭);
graph
用 DOT 图形语言描述管道图,默认 0(关闭);
compact
如果开启了 graph,紧凑打印行,默认 1(开启)。


本文作者:刘 能(上海新炬中北团队)
本文来源:“IT那活儿”公众号

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




