人大金仓数据库KingbaseES 物化视图

金仓数据库KingbaseES 物化视图

关键字:

物化视图

物化视图概述

物化视图是数据库中的一种对象,它存储了查询的结果,并定期刷新以保持数据的最新状态。与普通视图不同,物化视图的将数据存储在数据库中,从而提高查询性能,特别是在涉及大量数据和复杂查询的情况下。物化视图反映的是某个查询的结果或者是中间结果,其本身是会存储数据的,当数据量比较小时可以存储在内存,但数据量比较大的时候就会存储在磁盘上。物化视图主要用于预先计算并保存比较耗时的操作的结果,比如表连接或者聚集操作等。使用物化视图可以避免重复进行耗时的操作,从而提升查询性能。

物化视图的使用场景

(1)、物化视图用于在OLAP(在线分析与处理)领域,是用于加速时效性要求不高的长时间复杂查询。

(2)、物化视图支持建立索引以加快查询速度。

(3)、基表数据更新不频繁,但是表的操作或者连接操作比较耗时,使用比较频繁。

(4)、查询中使用外部数据库的表,扫描该表会比较慢,可以通过物化视图将外部数据库表数据存储起来(需要手动刷新物化视图)。

物化视图的缺点

(1)、不支持通过CREATE OR RERPLACE语法重建物化视图。

(2)、重建只能先删除再重建。

(3)、删除以后,该视图上所有的索引都会丢失。

(4)、KES不支持物化视图自动更新和增量更新

(5)、每次刷新数据时都要执行一次REFRESH MATERIALIZED VIEW操作

(6)、要想实现自动刷新,必须使用类似crontab、pgAgent定时任务或者是触发器。

所以如果原始表的数据更新比较频繁,物化视图刷新比较慢的情况下,不适合使用物化视图。所以最终是否需要使用物化视图,需要结合具体的场景决定。

物化视图的基本操作

基本语法:

# \h CREATE MATERIALIZED VIEW

命令:CREATE MATERIALIZED VIEW

说明: 建立新的物化视图

语法:

CREATE MATERIALIZED VIEW [ IF NOT EXISTS ] 表名

[ (列名称 [, ...] ) ]

[ USING 方法 ]

[ WITH ( 存储参数 [= 值] [, ... ] ) ]

[ TABLESPACE 表空间的名称 ]

AS 查询

[ WITH [ NO ] DATA ]

建立物化视图:

create materialized view my_materialized AS SELECT * FROM km_user;

在物化视图上建立索引:

create unique index my_materialized_username_index on my_materialized(username);

刷新物化视图:

REFRESH MATERIALIZED VIEW concurrently my_materialized;

聚簇物化视图:

cluster my_materialized using my_materialized_username_index;

删除物化视图:

drop materialized view my_materialized;

参考资料

《KingbaseES产品手册》

  • 10
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值