2016-11-22 55 views
2

如何在mysql中創建物化視圖? 我無法像在MS SQL Server中那樣創建實體化視圖。mysql中的物化視圖

任何人都可以讓我知道如何在mysql中創建它。

+1

你可以從[這裏](http://dba.stackexchange.com/questions/86790/best-way-to-create-a-materialized-view-in-mysql)取一個隊列。 –

回答

2

您可以創建一個不可更新的動態視圖 - 如果你已經有了基礎表(一個或多個),您可以在快照中添加(索引)時間戳,像:

CREATE VIEW almost_materialzd 
AS 
SELECT snp.* 
FROM snapshot snp 
WHERE s.id NOT IN (SELECT id 
    FROM source_data sd 
    INNER JOIN ref_data rd 
    ON rd.value='snapshot of source_data' 
    AND sd.update_timestamp>rd.timetamp) 
UNION 
SELECT * 
FROM source_data sd2 
INNER JOIN ref_data rd2 
ON rd2.value='snapshot of source_data' 
AND sd2.update_timestamp>rd2.timetamp); 

但更好的解決方案是向底層表添加一個觸發器(或觸發器),以便在底層表更改時重新填充表示物化視圖的表中的相關行。

+0

謝謝兄弟! – Naveen