Задать вопрос
@Alk90
php, mysql, jquery, css, html, api

Нужно ли использовать во всех запросах ORDER BY?

Всем привет! При помощи EXPLAIN заметил такую вещь... Два простых одинаковых запроса, с разницей лишь в отсутствии ORDER BY
5b7dc222b2fc4016370936.png
=============================================
5b7dc2ed20668044820688.png

Как видно, в первом случае (без ORDER BY), перелопачивается вся таблица не зависимо от того, что установлен лимит.
Правильно ли я понимаю, что нужно везде обязательно явно указывать тип сортировки, для того, чтобы правильно использовались индексы?
  • Вопрос задан
  • 85 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
@Ambrosian
ORDER BY всегда медленнее - ибо это + сортировка обязательно
А в вашем примере - какая-то шляпа. Зачем вам LIMIT без ORDER BY? Порядок строк не гарантирован, то есть вы получаете случайные строки 200 штук по сути
Нет, неправильно понимаете, для использования индексов не нужен ORDER BY.
Напротив - для быстрого ORDER BY нужны индексы. Чтобы они были по этому полю построены по которому вы делаете сортировку.
Почему здесь так - оптимизатор запросов решил, что быстрее получить все строки подряд, чем мучать индекс. Возможно, просто все эти строки уже были в оперативной памяти.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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