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

enable_adaptive_memory_spill_scheduler

触发处理器将数据自适应落盘到外部存储。目前仅支持 grace join。

enable_add_distinct_to_in_subqueries

IN 子查询中启用 DISTINCT。这是一个需要权衡的设置:启用后可确保仅发送唯一值,从而大幅减小分布式 IN 子查询传输的临时表大小,并显著加快分片之间的数据传输。 不过,启用此设置会增加每个节点上的额外合并开销,因为必须执行去重 (DISTINCT) 。当网络传输成为性能瓶颈,且可以接受额外的合并成本时,请使用此设置。

enable_automatic_decision_for_merging_across_partitions_for_final

如果启用此设置,当分区键表达式是确定性的,且分区键表达式中使用的所有列都包含在主键中时,ClickHouse 会自动启用此优化。 这种自动推导可确保具有相同主键值的行始终属于同一分区,因此可以安全地避免跨分区合并。

enable_early_constant_folding

启用查询优化:分析函数和子查询的结果,并在其中包含常量时重写查询

enable_extended_results_for_datetime_functions

启用或禁用返回扩展范围的 Date32 类型结果 (相对于 Date 类型) , 或返回扩展范围的 DateTime64 类型结果 (相对于 DateTime 类型) 。 可能的值:
  • 0 — 对于所有类型的参数,函数均返回 DateDateTime
  • 1 — 对于 Date32DateTime64 参数,函数返回 Date32DateTime64;否则返回 DateDateTime
下表展示了此设置对各种日期时间函数的影响。

enable_full_text_index

别名: allow_experimental_full_text_index 如果设置为 true,则允许使用文本索引。

enable_global_with_statement

将 WITH 语句应用于 UNION 查询和所有子查询

enable_hdfs_pread

控制是否对 HDFS 文件启用 pread。默认使用 hdfsPread。如果禁用,则会使用 hdfsReadhdfsSeek 来读取 HDFS 文件。

enable_http_compression

启用或禁用 HTTP 请求响应中的数据压缩。 如需了解更多信息,请参阅 HTTP 接口说明 可选值:
  • 0 — 禁用。
  • 1 — 启用。

enable_identifier_resolve_cache

在查询分析器中启用标识符解析缓存。该缓存会共享已解析的别名节点,以防止同一别名被多次引用时 AST 膨胀。若怀疑结果不正确,可将其设为 false 以禁用缓存。

enable_job_stack_trace

当 job 导致异常时,输出 job 创建者的堆栈跟踪。默认禁用,以避免性能开销。

enable_lazy_columns_replication

启用 JOIN 和 ARRAY JOIN 中的惰性列复制,可避免在内存中多次不必要地复制相同的行。

enable_materialized_cte

启用物化公共表表达式;该设置的优先级高于 enable_global_with_statement

enable_memory_bound_merging_of_aggregation_results

启用用于聚合的内存受限合并策略。

enable_multiple_prewhere_read_steps

如果有多个通过 AND 组合的条件,则会将更多条件从 WHERE 移到 PREWHERE,并分多个步骤从磁盘读取数据并进行过滤

enable_named_columns_in_function_tuple

当所有名称都是唯一的,且可视为未加引号的标识符时,在函数 tuple() 中生成命名元组。

enable_order_by_all

启用或禁用 ORDER BY ALL 排序语法,参见 ORDER BY 可能的值:
  • 0 — 禁用 ORDER BY ALL。
  • 1 — 启用 ORDER BY ALL。
示例 查询:
结果:

enable_parallel_blocks_marshalling

仅影响分布式查询。启用后,块会在发送到发起节点之前/之后,由管道线程进行 (反) 序列化和 (反) 压缩 (即并行度高于默认情况) 。

enable_parsing_to_custom_serialization

如果为 true,则可根据从表中获得的序列化提示,直接将数据解析到使用自定义序列化 (例如 Sparse) 的列中。

enable_producing_buckets_out_of_order_in_aggregation

允许内存高效的聚合 (参见 distributed_aggregation_memory_efficient) 以乱序方式生成桶。 当聚合桶的大小分布不均时,这可能会提升性能:副本在仍处理某些 id 较低的大桶时,可以先向发起节点发送 id 较高的桶。 缺点是内存使用量可能会增加。

enable_reads_from_query_cache

启用后,将从查询缓存中读取 SELECT 查询结果。 可能的值:
  • 0 - 禁用
  • 1 - 启用

enable_s3_requests_logging

启用极其详细的 S3 请求日志。仅建议在调试时使用。

enable_scalar_subquery_optimization

如果将其设置为 true,则可防止标量子查询对大型标量值进行 (反) 序列化,并尽可能避免同一子查询被执行多次。

enable_scopes_for_with_statement

如果禁用,父级 WITH 子句中的声明将与在当前作用域中声明时具有相同的作用域行为。 请注意,这是 analyzer 的一个兼容性设置,用于允许运行一些旧 analyzer 能够执行的无效查询。

enable_sharding_aggregator

启用分片式 GROUP BY 优化。该优化通过对分组键进行哈希计算,将行分发到各个线程,使每个线程聚合一组互不重叠的键子集,无需经过 merge 阶段。 对于数据分布均匀的高基数键,这种方式效率很高;但如果键分布严重倾斜,或查询中的不同键非常少,则效果可能不佳。 可能的值:
  • 0 — 禁用分片聚合优化。
  • 1 — 启用分片聚合优化。

enable_shared_storage_snapshot_in_query

如果启用,单个查询中的所有子查询在访问每个表时都将共享同一个 StorageSnapshot。 这样可确保整个查询中的数据视图保持一致,即使同一个表被多次访问也是如此。 对于那些需要保证数据分区片段内部一致性的查询,此设置是必需的。示例:
如果没有此设置,外层查询和内层查询可能会基于不同的数据快照执行,从而导致结果不正确。
启用此设置后,会禁用一项优化:该优化会在规划阶段完成后,从快照中移除不必要的数据分区片段。 因此,长时间运行的查询可能会在整个耗时期间一直持有已过时的数据分区片段,从而延迟分区片段清理并增加存储压力。此设置目前仅适用于 MergeTree 家族的表。
可能的值:
  • 0 - 已禁用
  • 1 - 已启用

enable_sharing_sets_for_mutations

允许在同一变更的不同任务之间共享为 IN 子查询构建的 Set 对象。这可以减少内存占用和 CPU 消耗

enable_streaming_queries

允许 SELECT ... FROM t STREAM [CURSOR '{...}'] 持续查询。 关闭时,任何使用 STREAM 修饰符的表表达式都会在构建执行计划时 被拒绝。这是流式查询功能的总开关; 其他能力也可能受其各自设置的控制。

enable_time_time64_type

别名: allow_experimental_time_time64_type 允许创建 TimeTime64 数据类型。

enable_unaligned_array_join

允许对多个长度不同的数组使用 ARRAY JOIN。启用此设置后,数组会被调整到与最长数组相同的长度。

enable_url_encoding

允许在 URL 引擎表中启用或禁用对 URI 中路径的编码/解码。 默认禁用。

enable_vertical_final

如果启用,则在 FINAL 期间会通过将行标记为已删除并在后续进行过滤来移除重复行,而不是通过合并行来实现

enable_writes_to_query_cache

启用后,SELECT 查询的结果会存储在查询缓存中。 可能的值:
  • 0 - 禁用
  • 1 - 启用
最后修改于 2026年7月24日