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

optimize_skip_merged_partitions

如果只有一个 level > 0 的数据分片,且其生存时间 (TTL) 尚未过期,则启用或禁用对 OPTIMIZE TABLE … FINAL 查询的优化。
  • OPTIMIZE TABLE ... FINAL SETTINGS optimize_skip_merged_partitions=1
默认情况下,即使只有一个数据分片,OPTIMIZE TABLE ... FINAL 查询也会重写该分片。 可能的值:
  • 1 - 启用优化。
  • 0 - 禁用优化。

optimize_skip_unused_shards

对在 WHERE/PREWHERE 中包含分片键条件的 SELECT 查询,启用或禁用跳过未使用分片,并启用分布式查询的相关优化 (例如按分片键聚合) 。
假定数据是按分片键分布的,否则查询会返回错误结果。
可能的值:
  • 0 — 禁用。
  • 1 — 启用。

optimize_skip_unused_shards_limit

分片键的值数量上限;达到该限制时,将禁用 optimize_skip_unused_shards 值过多可能会带来大量处理开销,而收益却未必明显;因为如果 IN (...) 中包含大量值,查询很可能最终还是会被发送到所有分片。

optimize_skip_unused_shards_nesting

控制 optimize_skip_unused_shards 生效的分布式查询嵌套层级 (例如 Distributed 表查询另一张 Distributed 表时) ;因此仍需启用 optimize_skip_unused_shards 可能的值:
  • 0 — 禁用,optimize_skip_unused_shards 始终生效。
  • 1 — 仅在第一层启用 optimize_skip_unused_shards
  • 2 — 在最多两层内启用 optimize_skip_unused_shards

optimize_skip_unused_shards_rewrite_in

对远程分片上的查询中的 IN 进行改写,以排除不属于该分片的值 (需要 optimize_skip_unused_shards) 。 可能的值:
  • 0 — 禁用。
  • 1 — 启用。
最后修改于 2026年7月23日