更新变异
更新变异指的是通过更新操作来操控表数据的 ALTER 查询。最显著的是像 ALTER TABLE UPDATE 这样的查询。执行此类查询会产生新的变异数据分片版本。这意味着这些语句会触发对在变异之前插入的所有数据的整个数据分片的重写,从而转化为大量的写入请求。
参考
对于更新操作,您可以通过使用专门的表引擎,例如 ReplacingMergeTree 或 CollapsingMergeTree,而不是默认的 MergeTree 表引擎,来避免这些大量的写入请求。
ALTER TABLE ... UPDATE 语句
操控匹配指定过滤表达式的数据。实现为 变异。
注意
ALTER TABLE 前缀使此语法与大多数其他支持 SQL 的系统不同。其目的是表明,与 OLTP 数据库中的类似查询不同,这是一个不适合频繁使用的重型操作。
filter_expr 必须是 UInt8 类型。此查询将指定列的值更新为在 filter_expr 值为非零的行的相应表达式的值。值将使用 CAST 运算符转换为列类型。更新用于计算主键或分区键的列不受支持。
一个查询可以包含用逗号分隔的多个命令。
查询处理的同步性由 mutations_sync 设置定义。默认情况下,它是异步的。
参见
- 变异
- ALTER 查询的同步性
- mutations_sync 设置
- 轻量级
UPDATE- 使用补丁分片进行替代的轻量级更新 APPLY PATCHES- 手动应用来自轻量级更新的补丁