Skip to main content
删除与指定过滤 expression 匹配的数据。此操作通过 变更 实现。
ALTER TABLE 前缀表明这是一项重量级操作,不同于 OLTP 数据库中的类似查询。ALTER TABLE ... DELETE 会重写包含与过滤表达式匹配的行的每个数据分区片段,从而产生大量写入 I/O。请谨慎使用,因为它可能会影响 SELECT 性能。对于 MergeTree 表,建议考虑使用 DELETE FROM 查询,它执行的是轻量级删除,通常会快得多。对于需要频繁删除或更正的工作负载,建议考虑使用 ReplacingMergeTree 或 CollapsingMergeTree。
filter_expr 必须是 UInt8 类型。该查询会删除表中此 expression 取非零值的行。 单个查询可以包含多个以逗号分隔的命令。 IN PARTITION 子句会将变更限制在所列出的分区上。若不使用该子句,在 ReplicatedMergeTree 家族的表上,当启用 optimize_mutations_with_partition_pruning 设置 (默认启用) 时,ClickHouse 会自动识别 filter_expr 中的分区键条件,并仅对受影响的分区执行变更。在非复制表的 MergeTree 表上,请使用显式的 IN PARTITION 子句将变更限制在特定分区上。 查询处理的同步性由 mutations_sync 设置定义。默认情况下,它是异步的。 另请参见

相关内容

最后修改于 2026年9月26日