一、物化视图概述 物化视图是KingbaseES中的一种特殊对象,用于存储查询结果的物理副本,并可以周期性地进行更新。与简单视图不同,物化视图将数据实际存储在数据库中,因此可以提供更快的查询性能。创建物化视图时,需要指定一个查询,该查询将用于填充物化视图。之后,可以通过REFRESH MATERIALIZED VIEW命令来更新物化视图的内容。物化视图可以用于优化复杂查询的性能,提高系统的响应速度。 二、创建物化视图KingbaseES可以使用CREATE MATERIALIZED VIEW语句来创建视图,其中,IF NOT EXISTS 可以避免重复创建,name是物化视图的名称,query是物化视图的查询语句,WITH DATA表示创建时填充物化视图中的数据,WITH NO DATA表示创建时不填充数据,此时无法查询物化视图中的数据,需要执行REFRESH MATERIALIZED VIEW命令来更新物化视图的内容。 这里我们创建一个物化视图,包含员工的统计信息,如下所示: 物化视图emp_stat_mv包含了按照部门和职位统计的员工数量,我们直接查询emp_stat_mv,就可以获得员工统计信息 物化视图可以像表一样支持索引,实现约束和查询优化。 例如,我们为emp_stat_mv创建了一个唯一索引: 三、刷新物化视图 KingbaseES物化视图不会自动刷新数据,需要手动执行REFRESH MATERIALIZED VIEW命令。 CONCURRENTLY可以支持刷新物化视图时其他连接的并发读取。使用该选项的前提是物化视图上至少存在一个唯一索引,而且不能是表达式索引或者部分索引CONCURRENTLY 和WITH NO DATA选项不能一起使用。未填充数据的物化视图刷新时不支持CONCURRENTLY选项。 定期刷新物化视图 清空物化视图中数据 四、修改物化视图 ALTER MATERIALIZED VIEW语句可以修改物化视图的一些属性。 修改物化视图的字段名称: 修改物化视图的名称: 修改物化视图所在的模式: 五、删除物化视图 KingbaseES 使用DROP MATERIALIZED VIEW语句来删除物化视图。其中,IF EXIXTS可以避免删除一个不存在的物化视图,CASCADE表示级联删除依赖于该物化视图的对象,RESTRICT表示如果存在依赖对象则提示错误。 |
Kingbase物化视图介绍
于 2024-01-03 10:06:34 首次发布