Ver Mensaje Individual
  #3 (permalink)  
Antiguo 16/01/2009, 07:55
TEKILA
 
Fecha de Ingreso: octubre-2008
Mensajes: 9
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Aumentar rendimiento en busqueda

Gracias por contestar jurena.
He probado como me has dicho pero apenas he notado cambio. Además no lo he dicho por simplificar, pero hago una búsqueda alternativa, es decir, que si no hay ningún resultado en la tabla autor busca en una llamada alias, por lo que no se si me compensa hacerlo de ese modo por un poco mas de rendimiento pero perder la posibilidad de buscar en 2 tablas.
Pongo el código original, pero tampoco importa mucho (ya que los EXIST los he comprobado aparte y son instantáneos), es solo para haceros una idea.
Código:
SELECT * FROM titulo WHERE EXISTS(SELECT id_titulo FROM autor WHERE
 nombre LIKE "%unaPalabra%") AND id = ANY(SELECT id_titulo FROM autor WHERE
 nombre LIKE "%unaPalabra%") UNION SELECT * FROM titulo WHERE NOT
 EXISTS(SELECT id_titulo FROM autor WHERE nombre LIKE "%unaPalabra%") AND
 no = ANY(SELECT id_titulo FROM alias WHERE alias LIKE "%unaPalabra%");
Tal vez haya metido la pata con los índices? yo el índice de la columna nombre lo cree así:
CREATE INDEX miIndice1 ON autor(nombre(25));

Decir que nombre es una columna de tipo TEXT que por lo que comprobado como máximo tiene 91 caracteres. Seria mejor otro tipo de campo o variar 25 por un numero mayor?.

Pregunto un poco por preguntar, porque es que ya no se como rebajar el tiempo.
Me sirve cualquier semi-idea.