согласно документации MySQL , добавление ORDER BY NULL после GROUP BY должно " избежать издержек на сортировку результата ".Если да, то почему следующий запрос примерно в 5 раз медленнее
SELECT COUNT(*) advert_count, category.name
FROM advert
LEFT JOIN category ON advert.category_id = category.category_id
WHERE (
advert.state_id = 2
)
GROUP BY advert.category_id
ORDER BY NULL
LIMIT 5
, чем запрос с ORDER BY advert_count
?
SELECT COUNT(*) advert_count, category.name
FROM advert
LEFT JOIN category ON advert.category_id = category.category_id
WHERE (
advert.state_id = 2
)
GROUP BY advert.category_id
ORDER BY advert_count DESC
LIMIT 5
Из профилирования phpMyAdmin:
1-й запрос:
Sorting for group -
Sorting result 0.000002
Sending data 12.069774
2-й запрос:
Sorting for group 2.436986
Sorting result 0.000028
Sending data 0.000021
Я смущен этим, кто-нибудь может объяснить мне, что там происходит?