2011-01-21 59 views
3

我這裏有兩個表:以下哪個SQL查詢的速度會更快?兩個表上的連接還是連續的查詢?

ITEMS 
ID| DETAILS| .....| OWNER 

USERS: 
ID| NAME|.... 

ITEMS.OWNER = USERS.ID

我列出的項目與他們的各自所有者的名字。爲此,我可以用兩個表的聯接我也可以選擇通過他們做一個SQL查詢的所有項目和循環檢索的元組的是itmes所有者。這就是喜歡:

1 SQL與JOIN 與 1X20單表的SQL查詢

這將是一個更好的apporach採取在速度方面? 感謝

回答

3

每個查詢有開銷。如果你可以用一個查詢來做某件事,那麼用一個查詢來做(幾乎)總是更好。和大多數數據庫引擎比你更聰明。即使以某種方式分割查詢更好,數據庫也會發現自己。

開銷的一個例子:如果您執行100個查詢,會有你的應用程序,您的Web服務器之間有很多更多的流量。一般來說,如果您確實想知道關於性能的一些信息,請對各種方法進行基準測試,測量您感興趣的參數並根據becnhmark的結果做出決定。

祝你好運!

+0

我不同意關於「比你更聰明」的一部分(ahum) - 他們只知道自己的內部安排好。但我同意少查詢=更好的部分。 – foo 2011-01-21 12:36:53

6

當然是一個JOIN會更快。

製作20查詢,這意味着:

  • 解析他們20
  • 製作20指數試圖找到索引範圍的上items
  • 返回20的記錄開始(每個都有自己的元數據) 。
2

執行聯接將更快,以及一個更好的做法