Одинаково ли эффективно, когда я использую предложение LIMIT в миллионах записей и тысячах записей в MySQL? - PullRequest
1 голос
/ 06 марта 2011

Например:

Я собираюсь использовать JQuery ui autocomplet plugin. suggestions data должен быть извлечен из MySQL databse, и мой запрос sql:

SELECT `keywords`,`record_count`  FROM `suggestion_words`WHERE `keywords` LIKE '%'.$suggestions .'%' ORDER BY `search_count` LIMIT 0,10

Как каждыйсказал, что LIKE медленнее. Итак, мне просто интересно, если я возвращаю только 10 записей при каждом запросе, должна ли быть одинаковая эффективность в миллионах записей и тысячах записей!?

Большое спасибо!!

1 Ответ

1 голос
/ 06 марта 2011

Нет, MySql все равно нужно будет сканировать всю таблицу, поэтому чем больше строк нужно отсканировать, тем больше времени потребуется.

Поскольку MySql остановит сортировку , как только он найдет 10 строк, если вам нужно только 10 случайных записей, вам следует подумать о выполнении сортировки во внешнем подзапросе, поэтому MySql может перестать смотреть один раз 10 строк найдено.

Чтение http://dev.mysql.com/doc/refman/5.0/en/limit-optimization.html

...