物化了具有约束索引的底层表的视图优势

  • 本文关键字:视图 索引 约束 postgresql
  • 更新时间 :
  • 英文 :


让我们假设我有一个物化视图:

create materialized view my_mat_view as
select * 
from tb1
join tb2
on tb1.id = tb2.f_id and
tb1.col1 = tb2.col2

如果tb2有或没有对tb1的外键约束,那么从my_mat_view进行不同查询时,速度是否存在差异?我相信物化视图不像视图,因此,当我刷新它时,它只会执行底层查询构造,对吧?但是当我从中选择的时候呢?我还可以在属于tb2的列上为my_mat_view创建索引,这些列应该是外键,这会有同样的效果吗?

总之,我想知道如果在两个表之间建立一个关系,一个mat视图派生可以增加速度查询时间的mat视图?

物化视图本质上是一个不能直接更新的表,并且有一个关联的查询用于刷新其内容;因此,从物化视图中进行选择不受构建物化视图的表上是否存在约束或索引的影响。可以在物化视图上创建索引,以提高查询性能。