PG和GreenPlum中的物化视图

0    73    2

Tags:

👉 本文共约3187个字,系统预计阅读时间或需12分钟。

简介

物化视图(也叫实体化视图)是PostgreSQL9.3版本才支持的一个功能,物化视图的使用规则和视图是一样的,和视图不同的是,物化视图将结果集持久化在表中;
一个物化视图对应一个SQL语句,查询时去对应的结果集表查询(跟视图查询方式有些区别)。

也可以基于视图来创建物化视图。

创建物化视图语句:

语法

在PostgreSQL中,创建物化视图时,WITH NO DATA和WITH DATA选项控制了物化视图创建时是否立即填充数据。

  1. WITH NO DATA: 当在创建物化视图时使用WITH NO DATA选项,PostgreSQL只会创建物化视图的结构,但不会立即填充任何数据进去。这意味着物化视图在创建后是空的。你可以在之后通过执行REFRESH MATERIALIZED VIEW命令来手动填充数据。这种方法适用于那些数据集非常大,或者填充数据操作需要在非高峰时段进行的场景,以便减少对系统资源的即时压力。

  2. WITH DATA: 如果在创建物化视图时不指定WITH NO DATA,或者明确指定WITH DATA,那么PostgreSQL会在创建物化视图的同时立即执行底层查询并将结果集填充到物化视图中。这意味着物化视图创建后即可直接使用,无需额外的刷新操作。这对于数据集较小,或者需要立即可用的物化视图场景非常有用,但可能会在创建过程中对系统造成较大的资源消耗,尤其是对于大型查询或在资源紧张的系统上。

总结来说,WITH NO DATA选项让你能够分两步走:先创建物化视图的结构,之后再根据需要填充数据;而省略此选项或使用WITH DATA则是在创建时立即完成数据填充,物化视图创建后即可立即用于查询,但可能会有更高的即时资源需求。选择哪种方式取决于数据量大小、资源可用性和对数据即时性的要求。

在PostgreSQL中,使用REFRESH MATERIALIZED VIEW命令更新物化视图的内容时,可选的WITH [ NO ] DATA参数控制了刷新操作的具体行为:

•WITH DATA: 当使用WITH DATA或者根本不指定(因为默认行为就是WITH DATA),该命令会重新执行物化视图定义中的查询,以最新的基础数据来填充物化视图。这意味着物化视图会被更新为反映当前数据源的最新状态,所有相关的数据更改都会被包含进来。这对于确保物化视图数据的时效性和准确性非常重要。

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!
PG和GreenPlum中的物化视图后续精彩内容已被小麦苗无情隐藏,请输入验证码解锁本站所有文章!
验证码:
请先关注本站微信公众号,然后回复“验证码”,获取验证码。在微信里搜索“DB宝”或者“www_xmmup_com”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复

嘿,我是小麦,需要帮助随时找我哦。
  • 18509239930
  • 个人微信

  • DB宝
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部