暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Clickhouse之执行计划简介

IT那活儿 2025-03-18
85

点击上方“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(开启)。


END


本文作者:刘 能(上海新炬中北团队)

本文来源:“IT那活儿”公众号

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

评论