2017-05-05 90 views
0

我正在一個Web應用程序(PHP/MySQL),我正在尋找最佳性能。加入一個視圖與另一個視圖的性能

我正在建立一個視圖,在這個視圖中,我必須加入多個數據,但我想知道,將視圖與另一個視圖或表連接起來的最佳選擇是什麼。

更清楚,如果我有:

View_1 =表-A加入表-B

,我需要從表-A和表-B View_2數據,我應該怎麼辦

View_2 = Table_C join View_1或View_2 = Table_C join Table_A join Table_B

非常感謝

回答

2

查看針對您的特定查詢的解釋計劃。

加入到一個視圖,而不是基礎表威力會對性能產生影響 - 因爲,作爲ATIP羅伊解釋說,在其中執行的順序連接可以是性能很重要,並且有一些的加入在視圖內可能會阻止您對查詢中的連接進行最佳排序。

但這完全取決於您的查詢 - 它可能沒有任何區別。

而且,使用視圖也有好處:它意味着該視圖的邏輯僅存儲在一個地方。您給了我們一個簡化的例子,但在現實生活中,視圖1的代碼可能更復雜。如果你在多個地方需要相同的邏輯,儘可能避免代碼重複是一件好事。

因此,我會檢查性能是否真的很重要(以及它的重要性)。我寧願使用該視圖,除非該選項的性能不可接受。

+0

是的你是對的,但我特別要求,因爲我不知道數據庫引擎邏輯,我的意思是也許一個視圖緩存在某處,並且訪問速度比做同樣的聯接另一張桌子,但謝謝你的回答;) – Bobyblanco

1

繼續使用單個表總是一個好主意,如果您使用任何可能減少行數的內部聯接,請先執行它。減少的行數將始終幫助您在性能方面。鑑於表格加入,您可能無法獲得每次提及的靈活性。

+0

感謝您的回答;) – Bobyblanco

相關問題