Redshift物化视图和数据表对比

0

【以下的问题经过翻译处理】 假设我有一个名为my_table的事实表。现在我创建了一个物化视图,没有任何过滤器或聚合,例如:

create materialized view public.my_mv diststyle key
distkey (distkey_column)
sortkey
(
      sort_key_column1,
      sort_key_column2 ...
) auto refresh yes
as 
select * from my_table

物化视图具有相同的分布键和排序键?是否使用物化视图而不是基表可以获得任何好处?

profile picture
专家
已提问 5 个月前42 查看次数
1 回答
0

【以下的回答经过翻译处理】 在您提到的情况中,如果物化视图(MV)具有相同的分布键、排序键和没有额外的过滤器或聚合,那么使用MV而不是基表可能不会带来任何重大的好处。

物化视图在以下情况下非常有用:

  • 预计算复杂或耗时的聚合操作:由于MV存储了预计算结果,因此使用MV的查询速度更快。
  • 为特定的查询模式优化数据:您可以选择不同的分布键或排序键来优化MV,从而提高性能。
  • 减少基表上的负载:如果您有一个高并发系统,有很多查询,使用MV可以帮助分担基表的一部分负载,提高整体性能。

然而,在您的示例中,因为MV和基表具有相同的分布键、排序键以及没有额外的过滤器或聚合,MV基本上只是基表的一个冗余副本,查询基表或MV都会产生类似的性能。

在这种情况下,更有利的做法是直接使用基表,避免管理和刷新物化视图所带来的开销。

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则