2014-11-24 83 views
2

我有兩個表:CITY(約50000行)和COUNTRY(約220行)。這是一項任務,通過VIEW提供哪個城市在哪個國家?如果你能夠使用物化視圖,那會更好嗎? 我寫當前查詢:VIEW或MATERIALIZED VIEW?

CREATE VIEW cc as 
SELECT ct.NAME AS "country", c.NAME AS "cty" 
FROM CITY c JOIN COUNTRY ct ON cnt.CODE=c.COUNTRY; 

它給我我需要的信息,但我並沒有意識到bitween普通視圖有什麼區別和物化之一。哪一個是相關的?

+2

我不認爲這是個問題'哪個更好',而是 - 哪一個是相關的? – Coffee 2014-11-24 20:09:05

+0

視圖是一個純粹的宏,像事物一樣。物化視圖就像你的sql的緩存數據。刷新率(用戶定義) – 2014-11-24 20:09:54

+0

謝謝@Coffee,糾正了這個問題。 – nlimits 2014-11-24 20:10:48

回答

5

查看是「只是」當您希望查看視圖內容時執行的SQL語句。它不是一個實際存在於數據庫中的表。這意味着,無論何時從視圖中讀取,都是最新的。

物化視圖是數據庫中的實際表。它是在您創建它時創建的,如果您希望更新它,您必須對其進行維護。

他們是不同的東西。更好或更糟取決於你的要求。