管理物化视图

最近更新时间:2019-12-03 17:11:18

创建物化视图

postgres=# CREATE MATERIALIZED VIEW t_range_mv AS select f1,f2::date from t_range;       
SELECT 5
postgres=# select * from t_range_mv;
 f1 |     f2     
----+------------
  1 | 2017-09-27
  2 | 2017-09-27
  2 | 2017-09-27
  1 | 2017-09-27
  3 | 2017-09-27
(5 rows)

访问物化视图

postgres=# select * from t_range_mv;               
 f1 |     f2     
----+------------
  1 | 2017-09-27
  2 | 2017-09-27
  2 | 2017-09-27
  1 | 2017-09-27
  3 | 2017-09-27
(5 rows)

postgres=# insert into t_range(f1,f3) values(5,10);
INSERT 0 1

postgres=# select * from t_range;
 f1 |             f2             | f3  | f4 
----+----------------------------+-----+----
  1 | 2017-09-27 23:17:39.674318 |   1 | 
  2 | 2017-09-27 23:17:39.674318 |  50 | 
  5 | 2017-09-27 23:50:51.576173 |  10 | 
  2 | 2017-09-27 23:17:39.674318 | 110 | 
  1 | 2017-09-27 23:39:45.841093 | 151 | 
  3 | 2017-09-27 23:17:39.674318 | 100 | 
(6 rows)

增量数据刷新

postgres=# select * from t_range_mv ;
 f1 |     f2     
----+------------
  1 | 2017-09-27
  2 | 2017-09-27
  2 | 2017-09-27
  1 | 2017-09-27
  3 | 2017-09-27
(5 rows)

postgres=# REFRESH MATERIALIZED VIEW t_range_mv;
REFRESH MATERIALIZED VIEW
postgres=# select * from t_range_mv ;
 f1 |     f2     
----+------------
  1 | 2017-09-27
  2 | 2017-09-27
  5 | 2017-09-27
  2 | 2017-09-27
  1 | 2017-09-27
  3 | 2017-09-27
(6 rows)
说明:

物化视图数据存储在 cn 节点上,每个 cn 节点各有一份相同的数据。