2013-07-16 68 views
0

我想知道物化視圖和普通表在mysql中的區別。雖然mysql不支持實體化視圖,但我們可以使用flexview物化視圖和普通表在mysql中的區別?

當前我們正在處理一個調用詳細記錄(cdr文件)並保存表中的記錄(比如表A),然後我們創建了另一個表(比如表B ),它將有來自表A的記錄但按記錄分組。所以表B將計算表A的計算記錄,例如按國家或城市分組。

表A不斷,因爲它是保存所有的CDR文件 表B是使用一組通過查詢

現在我的問題是如何物化保存所有我們從表中A獲得的結果在巨大的規模增長可以在這種情況下實現視圖,以及在查詢性能方面,與以上情況下的表B相比,它有何不同。

+0

「所以表B將計算表A的計算記錄,例如按國家或城市分組」。請發佈創建聲明。你確定'B'是桌子而不是視圖? – Behrang

+0

@behrang saeedzadeh:它的一張桌子,而不是一個視圖。 – dell

回答

2

就比較查詢性能而言,表B中的SELECT與「flewview物化視圖」中的SELECT不同,因爲flexview所做的是創建實際表並維護該表中的內容表。

什麼可能會有所不同是如何填充「物化視圖」表。這很可能與填充和維護表B不同。

根據flexview如何維護表,當發生insert/update/delete操作時,可能會影響併發性。即,當「刷新」過程具有行鎖定時,查詢被阻止執行讀取。

但是,就物化視圖的查詢而言,它不會與常規表的查詢不同。

+0

我們遇到的問題是表A不斷被我們從.cdr文件讀取的數據轟炸。換句話說,有很多插入查詢在表A中運行,同時我們正在讀取表A中的數據(我的意思是使用group by queries)並將其保存在表B中。所以基本上我們將擁有所有的表B中報告所需的數據。我需要一些幫助,以便使用任何方法使此過程更快。 – dell