OPTIMIZE 

OPTIMIZE TABLE [db.]name [ON CLUSTER cluster] [PARTITION partition | PARTITION ID 'partition_id'] [FINAL] [DEDUPLICATE]

Запрос пытается запустить внеплановый мёрж кусков данных для таблиц семейства MergeTree. Другие движки таблиц не поддерживаются.

Если OPTIMIZE применяется к таблицам семейства ReplicatedMergeTree, ClickHouse создаёт задачу на мёрж и ожидает её исполнения на всех узлах (если активирована настройка replication_alter_partitions_sync).

  • Если OPTIMIZE не выполняет мёрж по любой причине, ClickHouse не оповещает об этом клиента. Чтобы включить оповещения, используйте настройку optimize_throw_if_noop.
  • Если указать PARTITION, то оптимизация выполняется только для указанной партиции. Как задавать имя партиции в запросах.
  • Если указать FINAL, то оптимизация выполняется даже в том случае, если все данные уже лежат в одном куске.
  • Если указать DEDUPLICATE, то произойдет схлопывание полностью одинаковых строк (сравниваются значения во всех колонках), имеет смысл только для движка MergeTree.

Оригинальная статья

Rating: 2.9 - 9 votes

Was this content helpful?
★★★☆☆