这些设置可在 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 — 启用。