2

我有一个查询,其中包含一个值列表,用于检查多列表中的单个列。

示例查询 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'

示例查询二……

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

我在 phpmyadmin 中都运行过,发现查询速度非常相似,所有这些都包含大约 5,000 条记录的表。

就性能和持久性而言,当表包含更多数据时,最好使用“IN”样式查询或使用多个实例 OR?

谢谢

4

3 回答 3

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

INOR快

于 2013-07-18T12:19:06.017 回答
2

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

INOR快 3 倍

于 2013-07-18T12:16:20.803 回答
2

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

于 2013-07-18T12:17:14.740 回答