我有一个查询,其中包含一个值列表,用于检查多列表中的单个列。
示例查询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?
由于
答案 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每次都更快。