背景:
ClickHouse中一张数据表中一天有7000w数据,采用delete删除命令删除一周数据,SQL已经执行成功,短时间内查询原表数据仍然存在,没有被删除,过了一会之后,在查询数据删除成功。
SQL提交成功:
短时间内【40s】查询数据仍然存在
经过查阅资料得知,ClickHouse提供了DELETE和UPDATE的能力,这类操作称为Mutation查询,可以看作ALTER语句的变种。虽然Mutation能最终实现修改和删除,但不能完全以通常意义上的UPDATE和DELETE来理解,我们必须认识到它的不同:
- Mutation语句是一种“很重”的操作,更适用于批量数据的修改和删除;
- 它不支持事务,一旦语句被提交执行,就会立刻对现有数据产生影响,无法回滚;
- Mutation语句的执行是一个异步的后台过程,语句被提交之后就会立即返回。
由于一般测试的数据很少,DELETE操作给人的感觉和常用的OLTP数据库无