bueno, en mysql, los indices pueden servir para varias cosas:
1. para acceder a la informacion mas rapidamente:
Código:
select *
from clientes
where nombre = "manolo"
funcionara mas rapido si has definido sobre la columna "nombre" un indice.
2. para crear campos no repetidos:
si en el "nombre" de la tabla anterior creas un indice unico (UNIQUE) tendras la certeza que los valores en este campo no se repiten.
3. para hacer integridad referencial:
imaginate que tienes una segunda tabla (llamemosla "caracteristicas_2") con los siguientes campos: "edad", "genero" y "busco". de manera que estos tres campos forman una clave primaria.
ademas, tu tabla "caracteristicas" hace referencia a esta segunta tabla a traves de los mismos campos ("edad", "genero" y "busco"). entonces NECESITARAS CREAR UN INDICE SOBRE ESTOS TRES CAMPOS A LA VEZ, NO DE FORMA SEPARADA y definir la integridad referencial.
espero haberte ayudado en algo.