一、原理
将查询结果进行缓存,极大提升视图查询速率
二、缺点
需要定时更新结果至缓存
三、创建
3.1 创建物化视图后,可查询数据
create materialized view view_name as query_sql;
3.2 创建物化视图后,视图不可查询(因为无数据)
create materialized view view_name as query_sql with no data;
四、刷新数据
4.1、直接刷新
refresh materialized view view_name;
4.2、比较更新
原理:将创建物化视图的临时更新版本,比较更新版本和原视图两个版本,并执行 insert 和 update
使用要求:
- 物化视图必须具有 unique 索引。创建索引语句如下:
create unique index index_name on view_name (列名1,列名2...);
- 只能在 PostgreSQL9.4及以上版本中使用。
刷新语句:
refresh materialized view concurrently view_name;
五、删除
drop materialized view if exists view_name;