2013-07-18 134 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更快每次。