Эти настройки доступны в system.settings и автоматически генерируются на основе исходного кода.
optimize_skip_merged_partitions
Включает или отключает оптимизацию для запроса OPTIMIZE TABLE … FINAL, если существует только одна часть с level > 0 и у неё нет истёкшего TTL.
OPTIMIZE TABLE ... FINAL SETTINGS optimize_skip_merged_partitions=1
По умолчанию запрос OPTIMIZE TABLE ... FINAL перезаписывает единственную часть, даже если часть всего одна.
Возможные значения:
- 1 - Включить оптимизацию.
- 0 - Отключить оптимизацию.
optimize_skip_unused_shards
Включает или отключает пропуск неиспользуемых сегментов для запросов SELECT, если в WHERE/PREWHERE задано условие по ключу сегментирования, а также включает связанные оптимизации для распределённых запросов (например, агрегацию по ключу сегментирования).
Возможные значения:
- 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 — Включено.