TGViewer
开发者工具箱|编程·开发工具·资源 开发者工具箱|编程·开发工具·资源 @devtoolboxhub · 570 subscribers
Post #1330 7
ClickHouse 26.3 EXPLAIN 新增两种格式化选项

ClickHouse 26.3 为 EXPLAIN 语句引入 pretty=1 和 compact=1 两个格式化选项,不改变执行计划本身,仅改变呈现方式。pretty 输出带缩进和标签的详细树形结构,适合深度调试与学习;compact 去除包装节点,仅保留核心操作,适合终端快速检查与 CI 日志。两者可以组合使用:EXPLAIN pretty=1, compact=1 SELECT ...,在保留缩进的同时折叠不必要的 Expression 节点。

测试使用官方 Stack Overflow 数据集(约 3700 万帖子、1300 万用户),涵盖五种场景:
- 简单 WHERE 过滤:compact 仅保留 ReadFromMergeTree,pretty 显式展示包装节点。
- GROUP BY 聚合:pretty 提供 Before GROUP BY 等注解,compact 仅标出 Aggregating 阶段。
- JOIN 操作:pretty 标注 Left/Right Pre Join Actions,明确区分两表分支。
- ORDER BY + LIMIT:两种格式都揭示 ClickHouse 的懒加载优化——先扫排序列,再取 TOP 行的剩余列。
- 复杂分析查询(JOIN + WHERE + GROUP BY + HAVING + ORDER BY + LIMIT):pretty 的缩进树让约 15 个执行节点的关系一目了然,compact 则更难追踪父子节点。

使用建议:pretty=1 适用于学习执行计划、调试复杂性能问题、撰写文档;compact=1 适用于快速检查查询结构、终端工作、CI 日志。最佳实践是在优化前始终检查执行计划,对比 schema 变更前后的计划,结合 system.query_log 关联实际运行统计,并用 EXPLAIN PIPELINE 分析处理器级别的并行性。


新选项本身不提升查询性能,但显著降低理解执行计划的门槛,帮助开发者更高效地定位优化点。

#开发者 #工具 #ClickHouse #EXPLAIN #查询优化 #数据库 #SQL #DevOps
@DevToolboxHub
More from @devtoolboxhub
  1. Sep 30, 2026AMSI 绕过技术 2026 开发者指南 AMSI(Antivirus Malware Scan Interface)是 Windows 的恶意脚本扫描接口,覆盖 PowerShe…
  2. Sep 30, 2026AI Agent 为什么记不住事 和 AI Agent 协作时最容易注意到的一点是:它们很擅长回答问题,却不擅长记住昨天发生过什么。你可以和它长聊一轮,做出一堆决定、说明偏好、一起…
  3. Sep 30, 2026wpipe:面向 Python 开发者的轻量编排库 wpipe 是一个纯 Python 可嵌入的编排库,目标是让数据管道的开发回到「编辑—运行—调试」的快速循环,而不必为验证业务逻…
  4. Sep 29, 20262,916 个 AI 网站 8 月流量:转录与图生 3D 起飞 Anjin Radar 追踪了 2,916 个 AI 网站的月度访问量,数据截至 2026 年 9 月 28 日。访…
  5. Sep 29, 2026Python 虚拟环境其实是个软链接 在 Linux 和 macOS 上执行 python3 -m venv .venv,并不会复制一份 Python。venv 里的 python…
  6. Sep 29, 2026Will It Focus:相机自动对焦兼容性查询 Agent 这是一个面向摄影器材的自动对焦兼容性查询工具,但它真正的看点在于工程实现:如何让模型引用厂商原文时,保证引用的确实是…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →