跳到主要内容
跳到主要内容

删除变更

Delete mutations refers to ALTER 查询,旨在通过删除操作来操纵表数据。最显著的例子是 ALTER TABLE DELETE 等查询。执行这些查询将生成数据部分的新变异版本。这意味着,诸如此类的语句会引发对所有在变异之前插入的数据的整个数据部分进行重写,这将转化为大量的写请求。

信息

对于删除操作,您可以通过使用专用的表引擎,如 ReplacingMergeTreeCollapsingMergeTree,来避免产生大量的写请求,而不是使用默认的 MergeTree 表引擎。

ALTER TABLE ... DELETE 语句

ALTER TABLE [db.]table [ON CLUSTER cluster] DELETE WHERE filter_expr

删除匹配指定过滤表达式的数据。实现为 mutation

备注

ALTER TABLE 前缀使此语法与大多数支持 SQL 的其他系统不同。它旨在表明,与 OLTP 数据库中的类似查询不同,这是一项不设计为频繁使用的重操作。 ALTER TABLE 被认为是一项重量级操作,要求在删除之前必须对底层数据进行合并。对于 MergeTree 表,考虑使用 DELETE FROM 查询,该查询执行轻量级删除,并且可能更快。

filter_expr 必须为 UInt8 类型。该查询删除表中对于该表达式取非零值的行。

一个查询可以包含多个用逗号分隔的命令。

查询处理的同步性由 mutations_sync 设置定义。默认情况下,它是异步的。

另请参见