Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/10/2005, 08:19
aRamon
 
Fecha de Ingreso: junio-2005
Mensajes: 6
Antigüedad: 19 años, 9 meses
Puntos: 0
consejos sobre indices en un tabla muy grande

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.