2013-07-18 169 views
2

我有一個查詢,它有一個值列表,用於檢查多列表中的單個列。MySQL SELECT查詢性能

實施例的查詢ONE ......

SELECT `name`, `sleeps` 
FROM `properties` 
WHERE `town`='bude' OR `town`='newquay' OR `town`='widemouth' OR `town`='polzeath' OR `town`='crantock' OR `town`='perranporth' OR `town`='Porthmeor' OR `town`='St Ives' OR `town`='porthtowan' 

實施例的查詢TWO ......

SELECT `name`, `sleeps` 
FROM `properties` 
WHERE `town` IN ('bude', 'newquay', 'widemouth', 'polzeath', 'crantock', 'wadebridge', 'Porthmeor', 'St Ives', 'porthtowan') 
    • -

我已經在phpmyadmin中運行了d發現查詢速度非常相似,全部都是大約5000條記錄的表格。

就性能和耐久性而言,當表格包含更多數據時,最好選擇「IN」式查詢還是使用多個實例或?

謝謝

回答

4

這是一個簡單的測試結果,

SELECT * FROM item WHERE id = 1 OR id = 2 ... id = 10000 
This query took 0.1139 seconds 

SELECT * FROM item WHERE id IN (1,2,3,...10000) 
This query took 0.0413 seconds 

IN快於OR

+0

好偉大,感謝@Adem –

+0

歡迎您@ DG85 –

+1

太好了! +1因爲科學是關於證據和證據的。 –

2

轉換效率較低的一個到另一個。所以我想答案應該,而取決於每個的可讀性(其中我認爲IN是更有效)

IN快3倍,比OR

2

我嘗試了一些querys,IN更快每次。