跳转到主要内容

字典布局类型

字典可通过多种方式存储在内存中,每种方式都需要在 CPU 和 RAM 占用之间进行权衡。
推荐布局flathashedcomplex_key_hashed 可提供最佳查询性能。 不推荐使用缓存类布局,因为其性能可能较差,且参数调优困难——详见 cache

指定字典布局

如果您在 ClickHouse Cloud 中使用字典,请使用 DDL 查询选项创建字典,并以 default 用户创建。 此外,请在 Cloud 兼容性指南 中确认受支持的字典源列表。
你可以使用 LAYOUT 子句 (用于 DDL) ,或在配置文件定义中使用 layout 设置来配置字典布局。

另请参阅 CREATE DICTIONARY 以了解完整的 DDL 语法。 布局中不包含 complex-key* 的字典,其键类型为 UInt64complex-key* 字典则使用复合键 (复杂键,可包含任意类型) 。 数值键示例 (列 key_column 的类型为 UInt64) :

复合键示例 (该键包含一个 String 类型的元素) :

提高字典性能

有几种方法可以提高字典性能:
  • GROUP BY 之后调用字典相关函数。
  • 将要提取的属性标记为 injective。 如果不同的键对应不同的属性值,则该属性称为 injective。 因此,当 GROUP BY 使用按键获取属性值的函数时,该函数会自动从 GROUP BY 中移出。
对于字典错误,ClickHouse 会生成异常。 错误示例包括:
  • 正在访问的字典无法加载。
  • 查询 cached 字典时出错。
你可以在 system.dictionaries 表中查看字典列表及其状态。
最后修改于 2026年6月10日