이 설정은 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의 동작을 제어합니다(따라서 이 설정을 사용하려면 여전히 optimize_skip_unused_shards가 필요합니다). 이는 Distributed 테이블이 다른 Distributed 테이블을 조회하는 경우에 해당합니다.
가능한 값:
- 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 — 활성화됩니다.