Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

optimize_skip_* 会话设置

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

optimize_skip_merged_partitions

类型
Bool
默认值
0

如果只有一个 level > 0 的数据分片,且其生存时间 (TTL) 尚未过期,则启用或禁用对 OPTIMIZE TABLE … FINAL 查询的优化。

  • OPTIMIZE TABLE ... FINAL SETTINGS optimize_skip_merged_partitions=1

默认情况下,即使只有一个数据分片,OPTIMIZE TABLE ... FINAL 查询也会重写该分片。

可能的值:

  • 1 - 启用优化。
  • 0 - 禁用优化。

optimize_skip_unused_shards

类型
Bool
默认值
0

对在 WHERE/PREWHERE 中包含分片键条件的 SELECT 查询,启用或禁用跳过未使用分片,并启用分布式查询的相关优化 (例如按分片键聚合) 。

可能的值:

  • 0 — 禁用。
  • 1 — 启用。

optimize_skip_unused_shards_limit

类型
UInt64
默认值
1000

分片键的值数量上限;达到该限制时,将禁用 optimize_skip_unused_shards

值过多可能会带来大量处理开销,而收益却未必明显;因为如果 IN (...) 中包含大量值,查询很可能最终还是会被发送到所有分片。

optimize_skip_unused_shards_nesting

类型
UInt64
默认值
0

控制 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

类型
Bool
默认值
1

对远程分片上的查询中的 IN 进行改写,以排除不属于该分片的值 (需要 optimize_skip_unused_shards) 。

可能的值:

  • 0 — 禁用。
  • 1 — 启用。
Navigation