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

parallel_replicas_allow_in_with_subquery

如果为 true,则 IN 子查询会在每个 follower 副本上执行。

parallel_replicas_allow_materialized_views

允许并行副本使用 materialized views

parallel_replicas_allow_view_over_mergetree

允许并行副本在基于 MergeTree 表的简单视图上执行外层查询 (而非视图的内部查询) ,从而提高节点间的并行化能力。同样适用于 UNION ALL 视图,前提是其所有分支都从不同的 MergeTree 表读取。

parallel_replicas_connect_timeout_ms

使用并行副本执行查询时,连接远程副本的超时时间,单位为毫秒。如果发生超时,则不会使用相应的副本执行查询

parallel_replicas_count

这是一个不应直接使用的内部设置,用于表示“并行副本”模式的实现细节。对于分布式查询,发起服务器会自动将此设置设为参与查询处理的并行副本数。

parallel_replicas_custom_key

可用于在特定表的各个副本之间分摊工作的任意整数表达式。 该值可以是任意整数表达式。 优先使用基于主键的简单表达式。 如果该设置用于由单个分片和多个副本组成的集群,这些副本将被转换为虚拟分片。 否则,其行为将与 SAMPLE 键相同,即会使用每个分片的多个副本。

parallel_replicas_custom_key_range_lower

允许 range 类型的过滤器根据自定义范围 [parallel_replicas_custom_key_range_lower, INT_MAX],在各副本之间均匀分配工作负载。 parallel_replicas_custom_key_range_upper 配合使用时,它可让该过滤器针对范围 [parallel_replicas_custom_key_range_lower, parallel_replicas_custom_key_range_upper] 在各副本之间均匀分配工作负载。 注意:此设置不会在查询处理期间额外过滤任何数据,而只是改变 range 过滤器为并行处理拆分范围 [0, INT_MAX] 时所使用的分界点。

parallel_replicas_custom_key_range_upper

允许 range 类型的过滤器根据自定义范围 [0, parallel_replicas_custom_key_range_upper],在各副本之间均匀拆分工作。值为 0 时将禁用上界,并将其设为自定义键表达式的最大值。 当与 parallel_replicas_custom_key_range_lower 配合使用时,它可让过滤器在范围 [parallel_replicas_custom_key_range_lower, parallel_replicas_custom_key_range_upper] 内将工作均匀分配到各个副本。 注意:此设置不会在查询处理期间额外过滤任何数据;它只是改变了 range 过滤器在并行处理时拆分范围 [0, INT_MAX] 的分界点。

parallel_replicas_filter_pushdown

允许将过滤器下推到由并行副本选择执行的查询部分

parallel_replicas_for_cluster_engines

将表函数引擎替换为对应的 -Cluster 版本

parallel_replicas_for_non_replicated_merge_tree

如果为 true,ClickHouse 也会对非复制的 MergeTree 表使用并行副本算法

parallel_replicas_index_analysis_only_on_coordinator

索引分析仅在副本协调器上执行,其他副本则跳过。仅在启用 parallel_replicas_local_pla 时生效

parallel_replicas_insert_select_local_pipeline

在启用并行副本的分布式 INSERT SELECT 中使用本地管道

parallel_replicas_local_plan

为本地副本构建本地执行计划

parallel_replicas_mark_segment_size

parts 会在逻辑上划分为多个分段,以便在并行读取时分配给各个副本。此设置用于控制这些分段的大小。除非你非常确定自己在做什么,否则不建议更改。取值范围应为 [128; 16384]

parallel_replicas_min_number_of_rows_per_replica

将查询中使用的副本数量限制为 (预计读取的行数 / min_number_of_rows_per_replica) 。最大值仍然受 ‘max_parallel_replicas’ 限制

parallel_replicas_mode

并行副本中 custom key 使用的过滤器类型。default - 对 custom key 使用 modulo 运算,range - 在 custom key 上使用 range filter,并基于 custom key 值类型的所有可能值进行处理。

parallel_replicas_only_with_analyzer

要使用并行副本,必须启用 analyzer。如果 analyzer 被禁用,则查询执行会回退到本地执行,即使已启用从副本进行并行读取也是如此。不支持在未启用 analyzer 的情况下使用并行副本。

parallel_replicas_plan_based

将并行副本的本地/远程边界表达为一种执行计划转换。规划器会先构建一个普通的本地执行计划;然后在读取步骤上方插入一个 split 步骤,并将其替换为一个 UNION:一部分是本地读取,另一部分是对 split 步骤下方那部分执行计划的远程读取。这样,该 fragment 会在副本上运行,其余部分则在协调器上运行。Experimental,且优先于 parallel_replicas_local_plan

parallel_replicas_prefer_local_join

如果为 true,且 JOIN 可以使用并行副本算法执行,并且 JOIN 右侧部分的所有存储引擎均为 *MergeTree,则会使用本地 JOIN,而不是 GLOBAL JOIN。

parallel_replicas_prefer_local_replica

启用时 (默认) ,本地副本始终会包含在用于并行读取的副本集合中。 禁用时,本地副本不再具有任何优先权,副本将完全根据负载均衡算法选择。 这样一来,带有 max_parallel_replicas = 1 的查询可被定向到其他主机;当大量短查询分布在集群中时,这有助于改善缓存局部性。

parallel_replicas_support_projection

投影优化可在并行副本中应用。仅在启用 parallel_replicas_local_plan 且 aggregation_in_order 未启用时生效。
最后修改于 2026年7月24日