openGauss學(xué)習(xí)筆記-45 openGauss 高級(jí)數(shù)據(jù)管理-物化視圖
物化視圖是相對(duì)普通視圖而言的。普通視圖是虛擬表,而物化視圖實(shí)際上就是存儲(chǔ)SQL執(zhí)行語句的結(jié)果,可以直接使用數(shù)據(jù)而不用重復(fù)執(zhí)行查詢語句,從而提升性能。
按照刷新方式物化視圖分為兩種:
- 全量物化視圖:僅支持對(duì)已創(chuàng)建的物化視圖進(jìn)行全量更新,而不支持進(jìn)行增量更新。創(chuàng)建全量物化視圖語法和CREATE TABLE AS語法類似。
- 增量物化視圖:可以對(duì)物化視圖增量刷新,需要用戶手動(dòng)執(zhí)行語句完成對(duì)物化視圖在一段時(shí)間內(nèi)的增量數(shù)據(jù)刷新。與全量創(chuàng)建物化視圖的不同在于目前增量物化視圖所支持場(chǎng)景較小。目前物化視圖創(chuàng)建語句僅支持基表掃描語句或者UNION ALL語句。
45.1 全量物化視圖
45.1.1 全量物化視圖語法格式
-
創(chuàng)建全量物化視圖
CREATE MATERIALIZED VIEW view_name AS query;
-
全量刷新物化視圖
REFRESH MATERIALIZED VIEW [ view_name ];
-
刪除物化視圖
DROP MATERIALIZED VIEW [ view_name ];
-
查詢物化視圖
SELECT * FROM [ view_name ];
45.1.2 全量物化視圖參數(shù)說明
-
view_name
要?jiǎng)?chuàng)建的物化視圖的名稱。
-
AS query
一個(gè)SELECT、TABLE 或者VALUES命令。
45.1.3 全量物化視圖示例
--準(zhǔn)備數(shù)據(jù)。
openGauss=# CREATE TABLE t1(c1 int, c2 int);
openGauss=# INSERT INTO t1 VALUES(1, 1);
openGauss=# INSERT INTO t1 VALUES(2, 2);
--創(chuàng)建全量物化視圖。
openGauss=# CREATE MATERIALIZED VIEW mv AS select count(*) from t1;
CREATE MATERIALIZED VIEW
--查詢物化視圖結(jié)果。
openGauss=# SELECT * FROM mv;
count
-------
2
(1 row)
--向物化視圖的基表中插入數(shù)據(jù)。
openGauss=# INSERT INTO t1 VALUES(3, 3);
INSERT 0 1
--對(duì)全量物化視圖做全量刷新。
openGauss=# REFRESH MATERIALIZED VIEW mv;
REFRESH MATERIALIZED VIEW
--查詢物化視圖結(jié)果。
openGauss=# SELECT * FROM mv;
count
-------
3
(1 row)
--刪除物化視圖。
openGauss=# DROP MATERIALIZED VIEW mv;
DROP MATERIALIZED VIEW
45.2 增量物化視圖
45.2.1 增量物化視圖語法格式
-
創(chuàng)建增量物化視圖
CREATE INCREMENTAL MATERIALIZED VIEW view_name AS query ;
-
全量刷新物化視圖
REFRESH MATERIALIZED VIEW [ view_name ];
-
增量刷新物化視圖
REFRESH INCREMENTAL MATERIALIZED VIEW [ view_name ];
-
刪除物化視圖
DROP MATERIALIZED VIEW [ view_name ];
-
查詢物化視圖
SELECT * FROM [ view_name ];
45.2.2 增量物化視圖參數(shù)說明
-
view_name
要?jiǎng)?chuàng)建的物化視圖的名稱。
-
AS query
一個(gè)SELECT、TABLE 或者VALUES命令。
45.2.3 增量物化視圖示例
--準(zhǔn)備數(shù)據(jù)。
openGauss=# CREATE TABLE t1(c1 int, c2 int);
openGauss=# INSERT INTO t1 VALUES(1, 1);
openGauss=# INSERT INTO t1 VALUES(2, 2);
--創(chuàng)建增量物化視圖。
openGauss=# CREATE INCREMENTAL MATERIALIZED VIEW mv AS SELECT * FROM t1;
CREATE MATERIALIZED VIEW
--插入數(shù)據(jù)。
openGauss=# INSERT INTO t1 VALUES(3, 3);
INSERT 0 1
--增量刷新物化視圖。
openGauss=# REFRESH INCREMENTAL MATERIALIZED VIEW mv;
REFRESH MATERIALIZED VIEW
--查詢物化視圖結(jié)果。
openGauss=# SELECT * FROM mv;
c1 | c2
----+----
1 | 1
2 | 2
3 | 3
(3 rows)
--插入數(shù)據(jù)。
openGauss=# INSERT INTO t1 VALUES(4, 4);
INSERT 0 1
--全量刷新物化視圖。
openGauss=# REFRESH MATERIALIZED VIEW mv;
REFRESH MATERIALIZED VIEW
--查詢物化視圖結(jié)果。
openGauss=# select * from mv;
c1 | c2
----+----
1 | 1
2 | 2
3 | 3
4 | 4
(4 rows)
--刪除物化視圖。
openGauss=# DROP MATERIALIZED VIEW mv;
DROP MATERIALIZED VIEW
?? 點(diǎn)贊,你的認(rèn)可是我創(chuàng)作的動(dòng)力!
?? 收藏,你的青睞是我努力的方向!
?? 評(píng)論,你的意見是我進(jìn)步的財(cái)富!文章來源:http://www.zghlxwxcb.cn/news/detail-669372.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-669372.html
到了這里,關(guān)于openGauss學(xué)習(xí)筆記-45 openGauss 高級(jí)數(shù)據(jù)管理-物化視圖的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!