Ya, MySQL dapat menggunakan indeks pada kolom di ORDER BY (dalam kondisi tertentu). Namun, MySQL tidak dapat menggunakan indeks untuk ASC campuran , pesanan DESC oleh ( SELECT * FROM foo ORDER BY bar ASC, pants DESC
). Membagikan pertanyaan Anda dan pernyataan CREATE TABLE akan membantu kami menjawab pertanyaan Anda secara lebih spesifik.
Untuk petunjuk tentang cara mengoptimalkan ORDER BY klausa:
http://dev.mysql.com/doc/refman/5.1/en/order-by-optimization.html
Edit 2012-01-21 8:53 AM
Ada pertanyaan tentang sumber pernyataan saya tentang penggunaan indeks dengan campuran ASC / DESC di ORDER BY. Dari dokumentasi ORDER BY Optimization :
Dalam beberapa kasus, MySQL tidak dapat menggunakan indeks untuk menyelesaikan ORDER BY, meskipun masih menggunakan indeks untuk menemukan baris yang cocok dengan klausa WHERE. Kasus-kasus ini meliputi:
...
Anda mencampur ASC dan DESC:
SELECT * DARI t1 ORDER OLEH key_part1 DESC, key_part2 ASC;
...
Selain itu, kata kunci DESC tidak ada artinya dalam CREATE INDEX
Spesifikasi index_col_name dapat diakhiri dengan ASC atau DESC. Kata kunci ini diizinkan untuk ekstensi di masa mendatang untuk menentukan penyimpanan nilai indeks naik atau turun. Saat ini, mereka diurai tetapi diabaikan; nilai indeks selalu disimpan dalam urutan menaik.