2010-10-21 52 views

回答

2

MySQL沒有物化視圖 - 鏈接只是創建一個表並將數據填充到表中,因此表可以被索引。這意味着性能與普通表相同,但是您也有重新填充表(包括索引)的開銷。

我沒有看到表使用了什麼引擎,但MEMORY可能是一個更好的選擇。

+0

我會糾正我的問題。鏈接非常有趣。感謝評論。 – adelarsq 2010-10-21 21:14:02

2

物化視圖只是一個普通表的一個奇特名稱,其中包含來自某些大量查詢的數據。

因此,雖然創建它與重查詢本身一樣重,但查詢它非常快。

這裏最大的問題是你想如何更新視圖。

  • 您可以定期進行全面更新。很容易做到,但是在更新期間很重,在更新之間數據已過時。
  • 您可以使用觸發器在插入/刪除/更新時自動更新數據。這使得其他表格的插入/刪除/更新稍重,但不會過時。
+0

我會嘗試使用觸發器。謝謝 – adelarsq 2010-10-21 21:19:46

1

Flexviews(http://flexvie.ws)是一個基於PHP/MySQL的開源項目。 Flexviews向MySQL,PHP和存儲過程添加了可逐步刷新的物化視圖(如Oracle中的物化視圖)。

它包括FlexCDC,一種基於PHP的讀取二進制日誌的更改數據捕獲實用程序,以及Flexviews用於定義和維護視圖的MySQL存儲過程。

Flexviews支持連接(僅限內連接)和聚合,因此它可用於創建彙總表。此外,您可以將Flexviews與Mondrian(ROLAP服務器)聚合設計器結合使用來創建ROLAP工具可以自動使用的彙總表。