当前位置: 首页 > news >正文

postgresql-物化视图

postgresql-物化视图

  • 物化视图
  • 创建物化视图
  • 刷新物化视图
  • 修改物化视图
  • 删除物化视图

物化视图

在这里插入图片描述

创建物化视图

postgresql使用create materialized view 语句创建视图

create materialized view
if not exists name
as query
[with [NO] data];

在这里插入图片描述
在这里插入图片描述

-- 创建一个包含员工统计信息的物化视图
-- emp_stat_mv 包含了按照部门和职位统计的员工数量
create materialized view emp_stat_mv as
select 
d.department_name,
j.job_title,
count(*) 
from cps.public.employees e 
join cps.public.departments d on d.department_id  = e.department_id 
join cps.public.jobs j on j.job_id = e.job_id 
group by d.department_name,j.job_title ;
-- 测试
select * from emp_stat_mv;

在这里插入图片描述
在这里插入图片描述

-- 物化视图可以像表一样支持索引,实现约束和查询优化,为emp_stat_mv创建唯一索引
create unique index uk_emp_stat_mv on emp_stat_mv (department_name,job_title);

刷新物化视图

postgresql物化视图不会自动刷新数据,需要手动执行refresh materialized view语句:

refresh materialized view [concurrently]name[ with [no] data];

在这里插入图片描述

-- 我们可以定期执行以下语句刷新物化视图emp_stat_mv
refresh materialized view concurrently cps.public.emp_stat_mv;
-- 或者执行以下语句清空物化视图emp_stat_mv中的数据
refresh materialized view emp_stat_mv
with no data;

修改物化视图

alter materialized view语句可以修改物化视图的一些属性,例如名称、字段名等:

-- 修改物化视图的字段名称
alter materialized view [ if exists ] name 
rename [ column ] column_name to new_column_name;-- 修改物化视图的名称
alter materialized view [ if exists ] name 
rename to new_name;-- 修改物化视图所在的模式
alter materialized view [ if exists ] name set schema new schema;
--  修改物化视图名称为emp_stat_mv2
alter materialized view emp_stat_mv rename to emp_stat_mv2;

alter materialized view语句不能修改物化视图定义中的查询语句;
如果想要修改物化视图定义中的查询语句,需要删除并重建物化视图。

alter materialized view 语句还提供了其他的修改功能,具体参考官网介绍

删除物化视图

postgresql使用drop materialized view 语句删除物化视图:

drop materialized view [if exists] name [cascade | restrict];

其中,if exists 可以避免删除一个不存在的物化视图时产生错误;cascade表示级联删除除依赖于该物化视图的对象;restrict表示如果存在依赖对象则提示错误信息,这是默认值。

--可以使用以下语句删除物化视图emp_stat_mv2
drop materialized view emp_stat_mv2;
http://www.lryc.cn/news/182469.html

相关文章:

  • 多层神经网络和激活函数
  • Visual Studio Code键盘快捷键大全
  • 新手学习笔记-----⽂件操作
  • LeetCode 251:展开二维向量
  • 练[BSidesCF 2020]Had a bad day
  • 第十五章 类和对象——友元
  • 【数仓精品理论分析】能不能学大数据?
  • java复习-多态性
  • 美团外卖优惠券小程序 美团优惠券微信小程序 自带流量主模式 带教程
  • 编写IDEA插件,实现根据现有代码生成流程图
  • 王杰国庆作业day6
  • 【C语言】循环结构程序设计 (详细讲解)
  • Spring的注解开发-注解原理解析-xml方式/注解方式组件扫描
  • 导出视频里的字幕
  • 【KingbaseES】银河麒麟V10 ARM64架构_安装人大金仓数据库KingbaseES_V8R6(CentOS8)
  • 【Vue】Vuex详解,一文读懂并使用Vuex
  • 第三章 C程序设计
  • QB/T 2703-2020 汽车装饰用皮革检测
  • 使用正则表达式批量修改函数
  • 【网络协议】UDP
  • 雷达编程实战之提高探测速度
  • pyspark常用功能记录
  • Spring面试题学习: 单例Bean是单例模式吗?
  • EM@常用三角函数图象性质(中学部分)
  • 一文拿捏Spring事务之、ACID、隔离级别、失效场景
  • input输入表头保存excel文件
  • DataBinding双向绑定简介
  • Is This The Intelligent Model(这是智能模型吗)
  • MySQL事务:特性、使用、并发事务问题和隔离级别
  • FFmpeg日志系统、文件与目录、操作目录