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.