Задать вопрос
@titronfan

Почему при запросе множества id из таблицы ORDER BY FIELD не тормозит mysql?

Здравствуйте!

Есть запрос:
SELECT user_id, user, title FROM table WHERE id IN ('.$id_list.') ORDER BY FIELD(id, '.$id_list.')

$id_list - Массив состоит из 100 id-шников (которые всегда меняются).

Я подумал, что нужно как-то ускорить запрос и кое-что переложить на плечи PHP (получать данные из MySQL в массив и сортировать их PHP).
Сделал запрос без ORDER BY FIELD:
SELECT user_id, user, title FROM table WHERE id IN ('.$id_list.')


Для теста времени выполнения запросов к MySQL я запустил скрипт из 1000 запросов (с разными $id_list массивами).
Что интересно время выполнения запросов к MySQL что в первом случае с ORDER BY FIELD, что во втором случае (сортировка с помощью PHP) - время выполнения одно и тоже.

Неужели ORDER BY FIELD при текущем раскладе совсем не тормозит MySQL? Вроде бы включается сортировка по полю и требуется больше времени.

Все, что хотел - это всеми способами попробовать снять нагрузку с MySQL. А так - хоть оставляй этот ORDER BY FIELD... Снижения никакого нет.
  • Вопрос задан
  • 297 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
Потому что сортируется не вся таблица, а только сотня записей, выбранных по айдишникам, это копейки.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
kooler62
@kooler62
Студент
Не думаю что выборка 1000 простыми запросами может немного нагрузить sql сервер.
Возможно EXPLAIN поможет отследить тормоза в запросах.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы