O que é um índice e quando ele piora o desempenho?
Índice é uma estrutura (em geral uma B-tree) que acha linhas sem ler a tabela inteira. Acelera WHERE, JOIN e ORDER BY em colunas seletivas. Custa espaço e deixa INSERT, UPDATE e DELETE mais lentos, porque cada índice também precisa ser atualizado. Em coluna com poucos valores distintos ou tabela pequena, quase não ajuda.
Em uma frase: Índice acelera a leitura e cobra na escrita.