2016-11-22 103 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