Sql 物化视图-我们为什么需要它?
我读了这篇文章。。。 作者说: 物化视图是保存到表中的查询的快照 如果是这样,为什么我们需要物化视图? 它与从查询插入到表有什么区别:Sql 物化视图-我们为什么需要它?,sql,postgresql,Sql,Postgresql,我读了这篇文章。。。 作者说: 物化视图是保存到表中的查询的快照 如果是这样,为什么我们需要物化视图? 它与从查询插入到表有什么区别: insert into items_ver(item_id, item_group, name) select * from items where item_id=2; 物化视图与常规视图: 常规视图是可供使用的存储查询。但是,每次查询视图时都会运行它。这可以使复杂查询变得更简单,但每次运行视图查询时,都会受到性能的影响 物化视图不仅为您预先运行查询结果
insert into items_ver(item_id, item_group, name)
select * from items where item_id=2;
物化视图与常规视图:
- 常规视图是可供使用的存储查询。但是,每次查询视图时都会运行它。这可以使复杂查询变得更简单,但每次运行视图查询时,都会受到性能的影响
- 物化视图不仅为您预先运行查询结果。实际上,您可以为结果编制索引,以优化视图的子查询。通过这种方式,您可以获得物理表和视图的许多好处
- 物化视图的缺点是,您需要主动指示它更新其内容,这就是为什么(正如评论员所指出的)它对于数据仓库和活动事务数据库最有效,因为您可能希望内容始终是最新的
- 实际表可以由查询填充,但它不再绑定到填充它的查询。例如,您可以在其中插入查询不会返回的元素
- 物化视图仍然绑定到创建它的查询。通过调用
,可以用查询的最新结果重新填充它REFRESH MATERIALIZED VIEW{VIEW\u name}
- 常规视图是可供使用的存储查询。但是,每次查询视图时都会运行它。这可以使复杂查询变得更简单,但每次运行视图查询时,都会受到性能的影响
- 物化视图不仅为您预先运行查询结果。实际上,您可以为结果编制索引,以优化视图的子查询。通过这种方式,您可以获得物理表和视图的许多好处
- 物化视图的缺点是,您需要主动指示它更新其内容,这就是为什么(正如评论员所指出的)它对于数据仓库和活动事务数据库最有效,因为您可能希望内容始终是最新的
- 实际表可以由查询填充,但它不再绑定到填充它的查询。例如,您可以在其中插入查询不会返回的元素
- 物化视图仍然绑定到创建它的查询。通过调用
,可以用查询的最新结果重新填充它REFRESH MATERIALIZED VIEW{VIEW\u name}