Real-Time Market AnalyticsClickHouse Workshops

05 让 AI 优化一条查询

把模块 04 里那条全表扫描的查询交给 ClickHouse Assistant,看它诊断出缺失的 sort key,然后给出跳数索引和投影两种方案,并附上可直接运行的 SQL。

ClickHouse Cloud 在 SQL Console 里内置了一个副驾驶,也就是 ClickHouse Assistant。 它懂 ClickHouse 的函数和最佳实践,而不只是通用 SQL。

SQL Console 编辑器里有一条 count 查询,右上角是 Assistant 的星光图标

打开 SQL Console,点击右上角的星光图标打开 Assistant。你聊天的同时,查询仍然留在编辑器里。

  1. 在 SQL Console 里打开 Assistant。

  2. 粘贴 模块 4.7 里那条未优化的查询:

    SELECT count() FROM forex WHERE bid > 1.5;
  3. 用自然语言问它:"这条查询为什么要扫描整张表,我怎样才能让它更快?"

  4. 读它的回答,它会诊断出查询为什么会扫描全部数据(bid 不在 sort key 里), 然后给出具体的 ClickHouse 解决方案并附上可直接运行的 SQL:在 bid 上建一个轻量的 minmax 跳数索引,或者建一个按 bid 预排序保存一份数据副本的投影(projection)。

注意看这些点

Assistant 会解释 bid 不在 sort key 里,所以什么都裁剪不掉,然后给出 ClickHouse 专有的解决方案,每个都带可复制粘贴的 ALTER TABLE SQL 和一个 "Open in editor" 按钮。这不是泛泛而谈的建议:它用的正是 ClickHouse 提供的那些具体能力。

ClickHouse Assistant 面板建议在 bid 列上建 minmax 跳数索引和投影,各自都附有可直接运行的 ALTER TABLE SQL

Track your progress?

Optional. We email a link to confirm your address; progress records once you open it.

Please use your work email address, not a personal one.

Progress tracking also requires accepting the current Terms of Service in Privacy settings.

ZH