openGauss学习笔记-45 openGauss 高级数据管理-物化视图

文章目录

    • openGauss学习笔记-45 openGauss 高级数据管理-物化视图
      • 45.1 全量物化视图
        • 45.1.1 全量物化视图语法格式
        • 45.1.2 全量物化视图参数说明
        • 45.1.3 全量物化视图示例
      • 45.2 增量物化视图
        • 45.2.1 增量物化视图语法格式
        • 45.2.2 增量物化视图参数说明
        • 45.2.3 增量物化视图示例

openGauss学习笔记-45 openGauss 高级数据管理-物化视图

物化视图是相对普通视图而言的。普通视图是虚拟表,而物化视图实际上就是存储SQL执行语句的结果,可以直接使用数据而不用重复执行查询语句,从而提升性能。

按照刷新方式物化视图分为两种:

  • 全量物化视图:仅支持对已创建的物化视图进行全量更新,而不支持进行增量更新。创建全量物化视图语法和CREATE TABLE AS语法类似。
  • 增量物化视图:可以对物化视图增量刷新,需要用户手动执行语句完成对物化视图在一段时间内的增量数据刷新。与全量创建物化视图的不同在于目前增量物化视图所支持场景较小。目前物化视图创建语句仅支持基表扫描语句或者UNION ALL语句。

45.1 全量物化视图

45.1.1 全量物化视图语法格式

  • 创建全量物化视图

    CREATE MATERIALIZED VIEW view_name AS query; 
    
  • 全量刷新物化视图

    REFRESH MATERIALIZED VIEW [ view_name ];
    
  • 删除物化视图

    DROP MATERIALIZED VIEW [ view_name ];
    
  • 查询物化视图

    SELECT * FROM [ view_name ];
    

45.1.2 全量物化视图参数说明

  • view_name

    要创建的物化视图的名称。

  • AS query

    一个SELECT、TABLE 或者VALUES命令。

45.1.3 全量物化视图示例

--准备数据。
openGauss=# CREATE TABLE t1(c1 int, c2 int);
openGauss=# INSERT INTO t1 VALUES(1, 1);
openGauss=# INSERT INTO t1 VALUES(2, 2);--创建全量物化视图。
openGauss=# CREATE MATERIALIZED VIEW mv AS select count(*) from t1;
CREATE MATERIALIZED VIEW--查询物化视图结果。
openGauss=# SELECT * FROM mv;count 
-------2
(1 row)--向物化视图的基表中插入数据。
openGauss=# INSERT INTO t1 VALUES(3, 3);
INSERT 0 1--对全量物化视图做全量刷新。
openGauss=# REFRESH MATERIALIZED VIEW mv;
REFRESH MATERIALIZED VIEW--查询物化视图结果。
openGauss=# SELECT * FROM mv;count 
-------3
(1 row)--删除物化视图。
openGauss=# DROP MATERIALIZED VIEW mv;
DROP MATERIALIZED VIEW

45.2 增量物化视图

45.2.1 增量物化视图语法格式

  • 创建增量物化视图

    CREATE INCREMENTAL MATERIALIZED VIEW  view_name  AS  query ; 
    
  • 全量刷新物化视图

    REFRESH MATERIALIZED VIEW [ view_name ];
    
  • 增量刷新物化视图

    REFRESH INCREMENTAL MATERIALIZED VIEW [ view_name ];
    
  • 删除物化视图

    DROP MATERIALIZED VIEW [ view_name ];
    
  • 查询物化视图

    SELECT * FROM [ view_name ];
    

45.2.2 增量物化视图参数说明

  • view_name

    要创建的物化视图的名称。

  • AS query

    一个SELECT、TABLE 或者VALUES命令。

45.2.3 增量物化视图示例

--准备数据。
openGauss=# CREATE TABLE t1(c1 int, c2 int);
openGauss=# INSERT INTO t1 VALUES(1, 1);
openGauss=# INSERT INTO t1 VALUES(2, 2);--创建增量物化视图。
openGauss=# CREATE INCREMENTAL MATERIALIZED VIEW mv AS SELECT * FROM t1;
CREATE MATERIALIZED VIEW--插入数据。
openGauss=# INSERT INTO t1 VALUES(3, 3);
INSERT 0 1--增量刷新物化视图。
openGauss=# REFRESH INCREMENTAL MATERIALIZED VIEW mv;
REFRESH MATERIALIZED VIEW--查询物化视图结果。
openGauss=# SELECT * FROM mv;c1 | c2 
----+----1 |  12 |  23 |  3
(3 rows)--插入数据。
openGauss=# INSERT INTO t1 VALUES(4, 4);
INSERT 0 1--全量刷新物化视图。
openGauss=# REFRESH MATERIALIZED VIEW mv;
REFRESH MATERIALIZED VIEW--查询物化视图结果。
openGauss=# select * from mv;c1 | c2 
----+----1 |  12 |  23 |  34 |  4
(4 rows)--删除物化视图。
openGauss=# DROP MATERIALIZED VIEW mv;
DROP MATERIALIZED VIEW

👍 点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富!

图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/46554.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

工厂模式并不难理解

文章目录 工厂模式简单工厂模式简单工厂模式使用的场景 工厂方法模式工厂方法模式使用场景 抽象工厂模式抽象工厂模式使用场景 工厂模式 功能:将对象的创建交给工厂,我们只需要告诉工厂我们要什么对象就可以得到该对象。 目的:实现创建对象…

【算法刷题之链表篇(1)】

目录 1.leetcode-82. 删除排序链表中的重复元素 II(1)题目描述(2)方法及思路(一次遍历)(3)代码实现 2.leetcode-19. 删除链表的倒数第 N 个结点(1)题目描述&a…

【问题】java序列化,什么时候使用

文章目录 是什么为什么如何做流操作 注事事项 是什么 把对象转换为字节序列的过程称为对象的序列化。 把字节序列恢复为对象的过程称为对象的反序列化。 对象的序列化主要有两种用途:   1)把对象的字节序列永久地保存到硬盘上,通常存放在一…

二刷LeetCode--46. 全排列(C++版本),回溯

思路:本题是典型的回溯问题,需要列举出每个排列,因此使用回溯法,对每个使用过的元素进行标记,因此需要一个和Nums同样大的标记数组,每个元素被使用之后在递归之前将其标记为已使用,在递归的时候…

JavaScript面试题(四)

87、事件代理 事件代理 也就是 事件委托不是直接给标签添加事件 是给标签的父级添加事件 通过 事件对象 判断触发事件的标签对象是谁 执行不同的函数程序的语法形式委托的优点减少内存消耗 试想一下,若果我们有一个列表,列表之中有大量的列表项&#xf…

无需公网IP——搭建web站点

文章目录 概述使用 Raspberry Pi Imager 安装 Raspberry Pi OS设置 Apache Web 服务器测试 web 站点安装静态样例站点将web站点发布到公网安装 Cpolar内网穿透cpolar进行token认证生成cpolar随机域名网址生成cpolar二级子域名将参数保存到cpolar配置文件中测试修改后配置文件配…

认识容器,走进Docker

文章目录 容器技术简介容器的核心技术容器平台技术容器的支持技术 Docker理念Docker安装配置阿里云镜像加速器 容器技术简介 一切在云端,万物皆容器,说到容器,大家都会想到Docker,Docker现在几乎是容器的代名词,什么是Docker&…

网络通信原理TCP的四次断开连接(第四十九课)

FIN:发端完成发送任务标识。用来释放一个连接。FIN=1表明此报文段的发送端的数据已经发送完毕,并要求释放连接。 SEQ:序号字段。 TCP链接中传输的数据流中每个字节都编上一个序号。序号字段的值指的是本报文段所发送的数据的第一个字节的序号。 序列号为X ACK :确认号 。 …

ViT模型架构和CNN区别

目录 Vision Transformer如何工作 ViT模型架构 ViT工作原理解析 步骤1:将图片转换成patches序列 步骤2:将patches铺平 步骤3:添加Position embedding 步骤4:添加class token 步骤5:输入Transformer Encoder 步…

【Rust】Rust学习 第十五章智能指针

指针 (pointer)是一个包含内存地址的变量的通用概念。这个地址引用,或 “指向”(points at)一些其他数据。Rust 中最常见的指针是第四章介绍的 引用(reference)。引用以 & 符号为标志并借用…

C# Linq源码分析之Take (三)

概要 本文在前两篇Take源码分析的基础上,着重分析Range参数中有倒数的情况,即分析TakeRangeFromEndIterator的源码实现。 源码及分析 TakeRangeFromEndIterator方法用于处理Range中的开始和结束索引存在倒数的情况。该方法位于Take.cs文件中。通过yie…

Lnton羚通算法算力云平台在环境配置时 OpenCV 无法显示图像是什么原因?

问题&#xff1a; cv2.imshow 显示图像时报错&#xff0c;无法显示图像 0%| | 0/1 [00:00<…

构建 NodeJS 影院微服务并使用 docker 部署【01/4】

图片来自谷歌 — 封面由我制作 一、说明 构建一个微服务的电影网站&#xff0c;需要Docker、NodeJS、MongoDB&#xff0c;这样的案例您见过吗&#xff1f;如果对此有兴趣&#xff0c;您就继续往下看吧。 在本系列中&#xff0c;我们将构建一个 NodeJS 微服务&#xff0c;并使用…

派森 #P121. 序列统计

描述 将用户输入的多个数值&#xff08;以输入为空结束&#xff09;存放至列表中&#xff0c;并完成以下统计计算&#xff1a; 1、计算所有数的最大值&#xff0c;最小值&#xff0c;平均值&#xff1b; 2、计算中位数&#xff0c;中位数&#xff1a;在一个有序数列中位于中件…

qt初入门0:结构体中QString用memset导致崩溃分析及QLatin1String简单查看源码

初识Qt,进行开发时遇到一个崩溃问题 简单整理 1&#xff1a;问题描述如下&#xff0c;结构体中QString成员&#xff0c;然后对结构体调用了memset导致问题&#xff1a; 2&#xff1a;问题分析&#xff0c;加断点调试的方式可以明确分析到行数 可以明确看出&#xff0c;初始化…

Windows下问题定位

1、内存相关知识点&#xff1b; 1&#xff09;windows下32位进程&#xff0c;用户态为2G内存&#xff0c;内核态也为2G内存&#xff1b;却别于linux操作系统&#xff1b; 备注&#xff1a;可以通过命令行与管理员权限&#xff0c;启动3G的用户态空间&#xff0c;但是部…

Java 下载压缩zip

Java压缩zip /*** 下载压缩包** param instId 实例id* param response 响应* author 梁伟浩* date 2023-08-21*/GetMapping("/downloadZip")ApiOperation(value "下载压缩包")ApiImplicitParam(name "instId", value "实例id", r…

git权限问题解决方法Access denied fatal: Authentication failed

文章目录 遇到Access denied 的权限问题解决方法1、git的密码修改过&#xff0c;但是本地没更新。2、确定问题&#xff0c;然后增加配置① 查询用户信息②如果名称和email不对&#xff0c;设置名称&#xff1a;③ 检查ssh-add是否链接正常④ 设置不要每次都输入用户名密码 3、配…

6.小程序api分类

事件监听 以on开头&#xff0c;监听某个事件触发&#xff0c;例如&#xff1a;wx.WindowResize事件 同步 以Sync结尾的是同步&#xff0c;可以通过函数返回值直接获取&#xff0c;例如&#xff1a;wx.setStorageSync 异步 需要通过函数接收调用结果&#xff0c;例如&#…

mysql 数据类型

目录 数值类型 整数 tinyint 位类型 BIT(M) 浮点类型 float [(M, D)] [UNSIGNED] DECIMAL(M, D) [UNSIGNED] 二进制类型 字符型 CHAR(SIZE) VARCHAR(SIZE) 日期类型 DATE/DATETIME/TIMESTAMP string 类型 SET & ENUM 在前面的文章中&#xff0c;有时候茶树数…