遵义广告公司网站建设如何申请域名
40.3 物化视图
物化视图与视图类似,也适用规则系统,不过物化视图保留结果集。
CREATE MATERIALIZED VIEW mymatview AS SELECT * FROM mytab;
与
CREATE TABLE mymatview AS SELECT * FROM mytab;
之间,最主要的区别是物化视图不可直接被更新,需要刷新物化视图数据:
REFRESH MATERIALIZED VIEW mymatview;
假设有表:
CREATE TABLE invoice (
invoice_no integer PRIMARY KEY,
seller_no integer, -- ID of salesperson
invoice_date date, -- date of sale
invoice_amt numeric(13,2) -- amount of sale
);
如果需要查看数据汇总,但无需最新数据,则可创建物化视图:
CREATE MATERIALIZED VIEW sales_summary AS
SELECT
seller_no,
invoice_date,
sum(invoice_amt)::numeric(13,2) as sales_amt
FROM invoice
WHERE invoice_date < CURRENT_DATE
GROUP BY
seller_no,
invoice_date
ORDER BY
seller_no,
invoice_date;CREATE UNIQUE INDEX sales_summary_seller
ON sales_summary (seller_no, invoice_date);
访问物化视图数据较表或视图更快,但需要定期刷新数据到物化视图中。