物化观点 - 我们为什么需要它?

时间:2015-11-24 12:55:51

标签: sql postgresql

我读过这篇文章...... http://hashrocket.com/blog/posts/materialized-view-strategies-using-postgresql

theherher说:

  

物化视图是保存到表中的查询的快照。

如果是这种情况,为什么我们需要物化观点? 它与查询中的表插入方式有何不同:

insert into items_ver(item_id, item_group, name)
select * from items where item_id=2;

1 个答案:

答案 0 :(得分:3)

物化视图与常规视图:

  • 常规视图是可以使用的存储查询。但是,每次查询视图时都会运行它。这可以使复杂查询更简单,但每次运行时都会影响视图查询的性能。
  • 物化视图不仅会为您预先运行查询结果。您可以实际索引结果,以优化视图的有效子查询。通过这种方式,您可以获得物理表和视图的许多好处。
  • 缺点是,物化视图是你需要主动指示它更新其内容,这就是为什么(正如评论者指出的那样)它对数据仓库和活动事务数据库最有效,你可能会期望内容始终保持最新状态。

物化视图与实际表格:

  • 实际表可以由查询填充,但不再绑定到填充它的查询。例如,您可以在其中插入查询不会返回的元素。
  • 物化视图仍然与创建它的查询绑定。您可以通过调用REFRESH MATERIALIZED VIEW {view_name}来重新填充查询的最新结果。