Eu adicionei índices à tabela que são usados para pesquisar resultados. Estou mostrando resultados por ordem ASC ou DESC. Então essa coluna deve ter índice ou não? Eu tenho mais 2 índices nessa tabela. Como o desempenho afetará ao fazer ou não fazer índice para essa coluna?
Sim, o MySQL pode usar um índice nas colunas no ORDER BY (sob certas condições). No entanto, o MySQL não pode usar um índice para ordem ASC,DESC mista
SELECT * FROM foo ORDER BY bar ASC, pants DESC
por ( ). Compartilhar sua consulta e a instrução CREATE TABLE nos ajudaria a responder sua pergunta mais especificamente.Para obter dicas sobre como otimizar cláusulas ORDER BY: http://dev.mysql.com/doc/refman/5.1/en/order-by-optimization.html
Editar 21-01-2012 8h53
Havia dúvidas sobre a fonte da minha afirmação sobre o uso de um índice com ASC/DESC misto no ORDER BY. Da documentação de otimização ORDER BY :
Além disso, a palavra-chave DESC não tem sentido em CREATE INDEX
Para quem está se perguntando sobre a resposta no que se refere ao PostgreSQL, a resposta é sim, um índice será usado. De acordo com a documentação do PostgreSQL, o planejador de consultas "considerará satisfazer uma especificação ORDER BY examinando um índice disponível que corresponda à especificação ou examinando a tabela em ordem física e fazendo uma classificação explícita". Isso significa que, se houver um índice que o planejador possa usar, ele o fará, voltando a fazer uma classificação após recuperar as linhas correspondentes.