MySQL SELECT查询性能

时间:2013-07-18 12:10:59

标签: mysql performance 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中都运行过,发现查询速度非常相似,所有这些都是大约5,000条记录的表。

在性能和持久性方面,当表包含更多数据时,最好选择'IN'样式查询还是使用多个实例OR?

由于

3 个答案:

答案 0 :(得分: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

更快

答案 1 :(得分:2)

将效率较低的一个转换为另一个。所以我认为答案应该取决于每个人的可读性(我认为IN效率更高)

IN OR

快3倍

答案 2 :(得分:2)

我尝试了一些查询,IN每次都更快。