Clickhouse物化视图常见疑问

242 阅读2分钟

常见疑惑

1. 原表大批量插入数据时,物化视图写入是否有延迟

​ 如下图,原表只有300000400条数据 ​ 现在原表中插入100000000条数据,总耗时24.4秒 在这里插入图片描述 在这插入过程中,另起一客户端查看物化视图其插入情况 在这里插入图片描述 ​ 物化视图中的数据总数一直在变化

结论:物化视图的写入基本不存在延迟

2. 原表数据插入、更新、删除等操作,物化视图表是否会随之更改

插入

​ 如第一问所示,物化视图会随原表插入数据而更改

更新

​ 原表和物化视图中都有一条userid为100的数据 在这里插入图片描述 ​ 更新原表中userid为100的数据,再查看物化视图中这条数据的变化 在这里插入图片描述 ​ 物化视图中的这条数据并没有变化 在这里插入图片描述

删除

​ 删除原表中userid为100的数据,再查看物化视图,这条数据并没有被删除 在这里插入图片描述

结论:原表中执行更新和删除操作后,物化视图并没有被更改,只有原表执行插入操作才会使物化视图发生更改

3. 物化视图的下线上线操作

下线:DETACH TABL|VIEW [db.]name

​ 下线操作不会删除表或物化视图中的数据或元数据,该操作只是断开了数据库与表的之间的连接,使数据库无法访问该表 在这里插入图片描述

上线:ATTACH TABLE [db.]name

​ 上线操作是把被下线了的表重新上线,恢复数据库与表之间的连接,使数据库可以重新访问该表 在这里插入图片描述

4. 物化视图的存储情况,如何查询

物化视图通过相应的SELECT查询来转换的存储数据,在创建物化视图时必须指定用于存储数据的表引擎

​ 查询数据时使用SELECT语句来实现查询功能在这里插入图片描述