Hay que tener en cuenta:
- Las consultas más frecuentes deberían tener índices. El que hace la aplicación sabe cuál es más frecuente.
- Esto es muy importante con campos VARCHAR, cuya búsqueda no indexada es horrible (FULL SCAN).
- No hay que tener demasiados índices. Nunca 20, por ejemplo. A ser posible, máximo 6 ó 7. Se puede buscar qué consultas son más frecuentes y priorizar.
- Una PK implica un índice.
- Una FK también implica un índice. Es decir, si tenéis una tabla NOTICIA con un ID_TEMA que es FK a la PK de una tabla TEMA (ID_TEMA)... ya tenéis un índice sobre ID_TEMA, no hay que volver a hacerlo.
- los índices deben hacerse para campos que normalmente no deberían permitir valores nulos
Esto es una explicación muy buena de un compañero de mi trabajo.