
文章目錄
ClickHouse的explain查詢執行計劃
一、AST檢視文法樹
二、SYNTAX檢視優化後文法,比較常用
三、PLAN:用于檢視執行計劃,預設值
四、PIPELINE:用于檢視PIPELINE計劃,相當于是PLAN更詳細的描述
ClickHouse的explain查詢執行計劃
ClickHouse在版本20.6.3之後支援explain檢視執行計劃。explain基本文法如下:
EXPLAIN [AST | SYNTAX | PLAN | PIPELINE] [setting = value, ...] SELECT ... [FORMAT ...]
- AST:用于檢視文法樹。
- SYNTAX:用于查詢ClickHouse優化後的文法。
- PLAN:用于檢視執行計劃,預設值。
- PIPELINE:用于檢視PIPELINE計劃,相對于PLAN更加詳細。
一、AST檢視文法樹
node1 :) EXPLAIN AST SELECT id,name,age,local FROM mr_tbl;
二、SYNTAX檢視優化後文法,比較常用
node1 :) EXPLAIN SYNTAX SELECT t.id,t.name FROM (SEELCT id,name FROM person_info) t WHERE t.id <3;
三、PLAN:用于檢視執行計劃,預設值
在使用PLAN時有一些設定:
- header:列印計劃中各個步驟的輸出頭,預設關閉,預設值0。
- description:列印計劃中各個步驟的描述,預設開啟,預設值1。
- indexes:列印計劃中使用的索引,預設關閉,預設值0,支援MergeTree表引擎。
- actions:列印計劃中各個步驟的詳細資訊,預設關閉,預設值0.
- json:列印計劃步驟時使用json格式展示,預設關閉,預設值0,建議使用預設TSVRaw格式,避免不必要的開銷。
node1 :) EXPLAIN PLAN SELECT id ,name ,age FROM mr_tbl;
#設定一些屬性後查詢結果
node1 :) EXPLAIN PLAN header=1,description=1,indexes=1,actions=1,json=1 SELECT id ,name ,age FROM mr_tbl;
以上關于json中詳細的字段解釋可以參照官網解釋:https://ClickHouse.com/docs/en/sql-reference/statements/explain/
四、PIPELINE:用于檢視PIPELINE計劃,相當于是PLAN更詳細的描述
- header:列印計劃中各個步驟的輸出頭,預設關閉,預設值0。
- graph:使用DOT圖形語言描述管道圖,預設關閉,預設值0。
- compact:如果graph開啟,以緊湊模式列印管道圖,預設開啟,預設值1。
node1 :) EXPLAIN PIPELINE header=1 SELECT sum(number) FROM numbers_mt(100000) GROUP BY number % 4;
- 📢歡迎點贊 👍 收藏 ⭐留言 📝 如有錯誤敬請指正!
- 📢本文由 Lansonli 原創
- 📢停下休息的時候不要忘了别人還在奔跑,希望大家抓緊時間學習,全力奔赴更美好的生活✨