一、媒介
提升查询性能一直是数据库的核心计划理念,物化视图就是其中一个项重要工具,现在梧桐数据库支持创建物化视图,本文简单介绍了梧桐数据库的物化视图创建与使用,供各人参考。
二、物化视图介绍
物化视图和视图雷同,反映的是某个查询的结果,但是和视图仅保存SQL定义不同,物化视图本身会存储数据,因此是物化了的视图。
在梧桐数据库中创建物化视图的根本语法如下
- create materialized view 视图名称 as select 列名称 from 表名称 where 条件;
复制代码 三、物化视图使用及优缺点分析
下面通过现实创建一个物化视图,通过实行时长对比总结其优缺点:
普通查询语句实行:
- select to_char(create_time,'yyyymm') opne_month,count(cust_id) as total_cnt
- from public.dw_***_***_dm
- group by to_char(create_time,'yyyymm');
复制代码
创建物化视图
- create materialized view public.dw_cust_open_total_view asselect to_char(create_time,'yyyymm') opne_month,count(cust_id) as total_cnt
- from public.dw_***_***_dm
- group by to_char(create_time,'yyyymm');
复制代码
查询物化视图:
- select * from public.dw_cust_open_total_view ;
复制代码
更新视图数据:
- refresh materialized view public.dw_cust_open_total_view ;
复制代码
通过以上现实操纵总结物化视图的优缺点:
优点:预先盘算并存储查询结果,减少查询时的盘算开销,加快查询速率;
缺点:默认手动革新视图数据,需要存储空间;
四、物化视图革新计谋
除手动革新视图还可以通过触发器革新,详细操纵如下:
创建视图革新函数,通过调度工具触发视图革新;
创建视图革新函数:
- CREATE OR REPLACE function public.refresh_materialized_view_func()
- RETURNS record AS
- $BODY$
- DECLARE
- BEGIN
- REFRESH MATERIALIZED VIEW CONCURRENTLY public.dw_cust_open_total_view;
- RETURN NULL;
- END;
- $BODY$
- LANGUAGE plpgsql;
复制代码 五、修改物化视图
物化视图也可雷同数据表修改视图名和字段名:
- 修改视图名
- alter materialized view 原视图名 rename to 新视图名;
- 修改字段名
- alter materialized view 视图名 rename 原字段名 to 新字段名;
复制代码
- alter materialized view public.dw_cust_open_total_view rename to dw_cust_open_total_view_1;
复制代码
- alter materialized view public.dw_cust_open_total_view_1 rename total_cnt to total_cnt_1;
复制代码
- drop materialized view 物化视图名称;
复制代码 总结
物化视图通过预先盘算并存储复杂查询的结果,可以显著提高数据检索的速率,以上简单介绍了梧桐数据库物化视图创建、查询、修改、删除、数据更新的相干语法,与SQL脚本查询对比的优缺点,在SQL查询优化、模型调优提速等场景中可以参考使用。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |