mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-12-18 04:12:19 +00:00
2.3 KiB
2.3 KiB
toc_priority | toc_title |
---|---|
47 | OPTIMIZE |
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.
!!! warning "Внимание"
Запрос OPTIMIZE
не может устранить причину появления ошибки «Too many parts».