Amazon redshift 在AmazonRedshift中使用物化视图比使用基表有什么优势?

Amazon redshift 在AmazonRedshift中使用物化视图比使用基表有什么优势?,amazon-redshift,materialized-views,Amazon Redshift,Materialized Views,从概念上讲,我理解物化视图是计算值的静态表示,但我不理解这在功能上与创建包含相同预计算数据的表有什么不同。我认为一张桌子可能会更有性能,因为可以添加排序键 物化视图,或之前所知的快照,是一个表段,其内容根据查询定期刷新,无论是针对本地表还是远程表。对远程表使用物化视图是实现站点间数据复制的最简单方法 它可以用作基于使用联接的多个表的聚合表。我们还可以实现行级安全特权 物化视图可用于提高各种查询的性能,包括执行数据聚合和转换的查询 一旦加载了MV的连接表,就会根据刷新机制自动刷新MVS数据

从概念上讲,我理解物化视图是计算值的静态表示,但我不理解这在功能上与创建包含相同预计算数据的表有什么不同。我认为一张桌子可能会更有性能,因为可以添加排序键

  • 物化视图,或之前所知的快照,是一个表段,其内容根据查询定期刷新,无论是针对本地表还是远程表。对远程表使用物化视图是实现站点间数据复制的最简单方法

  • 它可以用作基于使用联接的多个表的聚合表。我们还可以实现行级安全特权

  • 物化视图可用于提高各种查询的性能,包括执行数据聚合和转换的查询

  • 一旦加载了MV的连接表,就会根据刷新机制自动刷新MVS数据


  • 那天我自己也有同样的问题。。。据我所知,主要区别在于:

  • 刷新物化视图
    语法。要重新填充一个表,您必须截断该表并在事务中再次运行该查询。因此,从编码的角度来看,MV更有效

  • MV是数据库中的从属对象。上游表(定义中使用的表)必须以级联方式删除。对上游表的更改也相当有限。表独立于在某个时间点生成它的查询。所以这是一种设计选择。我想说,使用MV是一种更为保守的设计

  • 对于键,可以在create语句(per)中指定它们