Hola a Todos, es para pediros un conejo porque lo que se de base de datos lo se de leer por aqui y por alla, entonces os situo:
 
Una tabla con mas de 30.000 registros los campos son estos:
 
 id int(6) auto_increment (id de los registros)
 
 titulo varchar(80)	(nombre de la imagen)
 
 direccion varchar(150) (donde se guarda esa imagen)
 
 quien varchar(20) (quien aporta la imagen)
 
 cuando varchar(8) (fecha dd-mm-yy)
 
 descargas smallint(5) (cuantas veces se ha descargado)
 
 
-------------------------------------------
 
Entonces, la cuestion es a la hora de hacer busquedas sobre el campo titulo, ya que ha esa tabla estan constantemente accediendo, ya sea por busquedas o sacando toda la informacion para mostrar la foto. Cuando hago una busqueda, busco dentro del campo titulo de la siguiente manera:
 
 select id, titulo, quien from TABLA [USE INDEX (titulo)] where (titulo like '%$busca%') order by titulo limit 0,100 
 
selecciono los campos id, titulo, quien porque los neceseito para mostrar la informacion en la pagina de resultados de la busqueda.
 
Mi pregunta seria: de que manera me podria crear indices para que las busqeudas fueran mas rapidas ?¿
 
por ejemplo:
 
- sin ningun indice (en local) al hacer una busqueda, usando microtimes() tarda en hacer la consulta 0.250 segundos
 
- Y creando un indice asi:ADD INDEX `titulo` ( `titulo` ( 1 ) ) tarda en hacer la misma consulta 0.020 (10 veces menos).
 
Como veis no tengo mucha idea de indices porque igual la pregunta es un poco tonta.
 
gracias de antemano. 
   
 

