Sim, o MySQL pode usar um índice nas colunas em ORDER BY (sob certas condições). No entanto, o MySQL não pode usar um índice para ordem ASC e DESC mista por ( SELECT * FROM foo ORDER BY bar ASC, pants DESC
). Compartilhar sua consulta e a instrução CREATE TABLE nos ajudaria a responder sua pergunta mais especificamente.
Para obter dicas sobre como otimizar as cláusulas ORDER BY:
http://dev.mysql.com/doc/refman/5.1/en/order-by-optimization.html
Editar 2012-01-21 8:53 AM
Havia perguntas sobre a fonte da minha declaração sobre o uso de um índice com ASC / DESC misto no ORDER BY. Na documentação ORDER BY Optimization :
Em alguns casos, o MySQL não pode usar índices para resolver a ORDER BY, embora ainda use índices para encontrar as linhas que correspondem à cláusula WHERE. Esses casos incluem o seguinte:
...
Você mistura ASC e DESC:
SELECT * FROM t1 ORDER BY key_part1 DESC, key_part2 ASC;
...
Além disso, a palavra-chave DESC não tem sentido em CREATE INDEX
Uma especificação index_col_name pode terminar com ASC ou DESC. Essas palavras-chave são permitidas para futuras extensões para especificar o armazenamento do valor do índice crescente ou decrescente. Atualmente, eles são analisados, mas ignorados; valores de índice são sempre armazenados em ordem crescente.