MySQL のドキュメントによると、GROUP BY の後に ORDER BY NULL を追加すると、「結果のソートのオーバーヘッドを回避する」必要があります。もしそうなら、なぜクエリをたどるのが約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 プロファイリングから:最初の
クエリ:
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
私はこれに混乱しています。そこで何が起こっているのか誰か説明してもらえますか?