物化視圖
許多數據庫管理系統(例如Oracle 或者微軟SQL Server)都提供了一個被稱作物化視圖的功能物化視圖實際上是預先計算並且存儲在磁盤上的表可以通過各種各樣的策略刷新和更新MySQL 並不原生支持物化視圖(我們將在第 章詳細探討支持這種視圖的細節)然而使用Justin Swanhart 的開源工具Flexviews(http://codegooglecom/p/flexviews/)也可以自己實現物化視圖Flexviews 比完全自己實現的解決方案要更精細並且提供了很多不錯的功能使得可以更簡單地創建和維護物化視圖它由下面這些部分組成
變更數據抓取(Change Data Capturey CDC)功能可以讀取服務器的二進制日志並且解析相關行的變更
一系列可以幫助創建和管理視圖的定義的存儲過程
一些可以應用變更到數據庫中的物化視圖的工具
對比傳統的維護匯總表和緩存表的方法Flexviews 通過提取對源表的更改可以增量地重新計算物化視圖的內容這意味著不需要通過查詢原始數據來更新視圖例如如果創建了一張匯總表用於計算每個分組的行數此後增加了一行數據到源表中Flexviews簡單地給相應的組的行數加一即可同樣的技術對其他的聚合函數也有效例如SUM()和AVG()這實際上是有好處的基於行的二進制日志包含行更新前後的鏡像所以Flexviews 不僅僅可以獲得每行的新值還可以不需要查找源表就能知道每行數據的舊版本計算增量數據比從源表中讀取數據的效率要高得多
因為版面的限制這裡我們不會完整地探討怎麼使用Flexviews但是可以給出一個概略先寫出一個SELECT 語句描述想從已經存在的數據庫中得到的數據這可能包含關聯和聚合(GROUP BY)Flexviews 中有一個輔助工具可以轉換SQL 語句到Flexviews 的API 調用Flexviews 會做完所有的髒活累活監控數據庫的變更並且轉換後用於更新存儲物化視圖的表現在應用可以簡單地查詢物化視圖來替代查詢需要檢索的表
Flexviews 有不錯的SQL 覆蓋范圍包括一些棘手的表達式你可能沒有料到一個工具可以在MySQL 服務器之外處理這些工作這一點對創建基於復雜SQL 表達式的視圖很有用可以用基於物化視圖的簡單快速的查詢替換原來復雜的查詢
返回目錄高性能MySQL
編輯推薦
ASPNET MVC 框架揭秘
Oracle索引技術
ASP NET開發培訓視頻教程
數據倉庫與數據挖掘培訓視頻教程
From:http://tw.wingwit.com/Article/program/MySQL/201311/29674.html