2010-07-05 19 views
5

在我們的項目中,我們最終通常會像3個表格一樣編寫複雜的連接。我們是否通過使用視圖獲得任何性能優勢,還是僅僅爲了讓查詢作者的生活更輕鬆?如果它很重要,我們使用MySQL。如果獲得了任何優勢(當然除了簡單的查詢),請點亮。通過使用VIEW而不是JOIN獲得任何性能優勢嗎?

回答

5

一般來說,普通視圖在運行查詢時不會提供太多的性能改進。然而,大多數數據庫系統,包括MySql(我相信......自從我使用它以來已經有一段時間了)提供某種索引或物化視圖功能。通常,這些視圖有相當多的限制是可行的,但是一旦創建,支持查詢的結果就會緩存在物理表中(對於SQL Server索引視圖,則是TempDB中的表)。數據庫服務器是然後負責跟蹤對基礎查詢的更改並更新緩存副本。針對這種索引/物化視圖的查詢通常要快得多,按查詢正常表的順序。

+0

Thnx的澄清 – 2010-07-05 04:41:58

3

視圖只是邏輯表,與您在運行時運行相同的SQL沒有區別。唯一的區別是一種物化視圖,就像oracle的使用一樣,它就像一個緩存視圖。

+2

我想標記你的答案和jrista的答案一樣正確,但顯然只有一個答案可以標記爲這樣,所以我給你的答案投了贊成票。 – 2010-07-05 04:41:32

1

視圖(普通視圖)本身不提供性能優勢,除非使用了有很多限制的索引視圖(也稱爲物化視圖)。並非所有觀點都可以實現。

相關問題