Skip to main content
这些设置可在 system.settings 中找到,并由 源代码 自动生成。

prefer_column_name_to_alias

启用或禁用在查询表达式和子句中使用原始列名而非别名。在别名与列名相同时,这一点尤为重要,参见 Expression Aliases。启用此设置可使 ClickHouse 中的别名语法规则与大多数其他数据库引擎更兼容。 可能的值:
  • 0 — 列名会被替换为别名。
  • 1 — 列名不会被替换为别名。
示例 启用与禁用时的区别: 查询:
结果:
查询:
结果:

prefer_external_sort_block_bytes

外部排序时优先使用最大块字节数,以减少合并期间的内存使用量。

prefer_global_in_and_join

启用将 IN/JOIN 运算符替换为 GLOBAL IN/GLOBAL JOIN 可能的值:
  • 0 — 已禁用。IN/JOIN 运算符不会被替换为 GLOBAL IN/GLOBAL JOIN
  • 1 — 已启用。IN/JOIN 运算符会被替换为 GLOBAL IN/GLOBAL JOIN
用法 虽然 SET distributed_product_mode=global 可以改变分布式表的查询行为,但它不适用于本地表或来自外部资源的表。这正是 prefer_global_in_and_join 设置发挥作用的时候。 例如,我们有一些提供查询服务的节点,其中包含本地表,而这些表不适合做分布式处理。我们需要在分布式处理中使用 GLOBAL 关键字——GLOBAL IN/GLOBAL JOIN——动态地将这些数据分发出去。 prefer_global_in_and_join 的另一个用例是访问由 external engine 创建的表。此设置有助于在连接这类表时减少对外部数据源的调用次数:每个查询只调用一次。 另请参阅:

prefer_localhost_replica

启用/禁用在处理分布式查询时优先使用 localhost 副本。 可能的值:
  • 1 — 如果存在 localhost 副本,ClickHouse 始终将查询发送到该副本。
  • 0 — ClickHouse 使用 load_balancing 设置指定的负载均衡策略。
如果你使用 max_parallel_replicas 而未使用 parallel_replicas_custom_key,请禁用此设置。 如果设置了 parallel_replicas_custom_key,则仅当它用于包含多个 сегмент 且每个 сегмент 都包含多个副本的集群时,才应禁用此设置。 如果它用于只有单个 сегмент 但包含多个副本的集群,禁用此设置会带来负面影响。

prefer_warmed_unmerged_parts_seconds

仅在 ClickHouse Cloud 中生效。如果某个 merged 分片 距合并完成还不到这么多秒,且尚未预热 (参见 cache_populated_by_fetch) ,但它的所有 source 分片 都可用且已预热,则 SELECT 查询会改为从这些 分片 读取。仅适用于 Replicated-/SharedMergeTree。请注意,这里只检查 CacheWarmer 是否处理过该分片;如果该分片是通过其他方式被拉取到缓存中的,那么在 CacheWarmer 处理到它之前,仍会被视为冷分片;如果它曾被预热,之后又从缓存中被驱逐,仍会被视为热分片。
最后修改于 2026年7月24日