OPTIMIZE Statement
OPTIMIZE TABLE [db.]name [ON CLUSTER cluster] [PARTITION partition | PARTITION ID 'partition_id'] [FINAL] [DEDUPLICATE]
This query tries to initialize an unscheduled merge of data parts for tables with a table engine from the MergeTree family.
The OPTMIZE
query is also supported for the MaterializedView and the Buffer engines. Other table engines aren’t supported.
When OPTIMIZE
is used with the ReplicatedMergeTree family of table engines, ClickHouse creates a task for merging and waits for execution on all nodes (if the replication_alter_partitions_sync
setting is enabled).
- If
OPTIMIZE
doesn’t perform a merge for any reason, it doesn’t notify the client. To enable notifications, use the optimize_throw_if_noop setting. - If you specify a
PARTITION
, only the specified partition is optimized. How to set partition expression. - If you specify
FINAL
, optimization is performed even when all the data is already in one part. - If you specify
DEDUPLICATE
, then completely identical rows will be deduplicated (all columns are compared), it makes sense only for the MergeTree engine.
Warning
OPTIMIZE
can’t fix the “Too many parts” error.
当前内容版权归 ClickHouse 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问 ClickHouse .