ClickHouse提供了DELETE,但是不能和传统的Mysql这类数据库的相比。因为
- 这种操作被称为Mutation查询
- Mutation语句是一种“很重”的操作,更适用于批量数据的修改和删除
- 不支持事务,一旦语句被提交执行,就会立刻对现有数据产生影响,无法回滚
- Mutation语句的执行是一个异步的后台过程,语句被提交之后就会立即返回,即删除语句执行完不代表数据删除,会有一个后台进程去删除数据操作,具体数据什么时候删除呢,可以在系统表 system.mutations查看
其中 is_done = 1代表删除完成
表数据删除又分物理表和分布式表(Dictionary)
分布式表不支持删除,需要直接去删除物理表
ALTER TABLE sales_db.order_detail ON CLUSTER default_cluster DELETE WHERE customer_id in (11053,
11064,
11057,
10154,
10987);
说明 sales_db.order_detail 物理表名称
ON CLUSTER default_cluster 代表执行分布式DDL语句
WHERE 后面跟删除条件
关于我
觉得文章不错请扫码关注我吧