删除变异
删除变异指的是通过删除操作来操纵表数据的 ALTER 查询。最显著的是像 ALTER TABLE DELETE 这样的查询。执行此类查询会生成数据的新的变异版本。这意味着此类语句将触发对在变异之前插入的所有数据的整个数据部分进行重写,从而产生大量的写入请求。
参考
对于删除操作,您可以通过使用专门的表引擎,例如 ReplacingMergeTree 或 CollapsingMergeTree,而不是默认的 MergeTree 表引擎,来避免这些大量的写入请求。
ALTER TABLE ... DELETE 语句
删除匹配指定过滤表达式的数据。实现为 变异。
注意
ALTER TABLE 前缀使此语法与其他支持 SQL 的系统有所不同。其目的是表明,与 OLTP 数据库中的类似查询不同,这是一个繁重操作,并非设计用于频繁使用。ALTER TABLE 被认为是一个重量级操作,需要在删除之前合并底层数据。对于 MergeTree 表,请考虑使用 DELETE FROM 查询,它执行轻量级删除,并且速度可能快得多。
filter_expr 必须是 UInt8 类型。该查询删除表中该表达式取非零值的行。
一个查询可以包含用逗号分隔的多个命令。
查询处理的同步性由 mutations_sync 设置定义。默认情况下,它是异步的。
参见