2013-07-18 8 views
2

У меня есть запрос, который имеет список значений для проверки по одному столбцу в таблице с несколькими столбцами.Производительность запросов MySQL SELECT

Пример запроса ОДИН ......

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, так и в 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 

В быстрее, чем ИЛИ

+0

Ok здорово, спасибо @Adem –

+0

вы радушны @ DG85 –

+1

Great! +1 за предоставление доказательств, потому что наука - это все об эксприментах и ​​доказательствах. –

2

Преобразование менее эффективным один в другой. Так что я думаю, что ответ должен скорее зависеть от читаемости каждого (где я думаю, что IN является более эффективным)

В в 3 раза быстрее, чем ИЛИ

2

Я попробовал некоторые querys, IN быстрее каждый раз.

Смежные вопросы