Hola a todos, quería formularos un par de preguntas sobre índices, y
luego explicaros un pequeño caso que me está pasando y me estoy
volviendo un poco majareta.
1) ¿es lo mismo un indice A,B que un indice B,A?
2) Si tengo un indice A,B,C y necesito acceder por A,B, ¿tengo que
crear un indice de A,B, o el que tengo ya lo cubre?
3) Si tengo un indice A,B, pero tengo la siguiente query
select * from tabla
where B = 15 and A = 20
¿cogerá el indice A,B, o espera uno que sea B,A por el orden utilizado
en el where?
Y por último, os comento brevemente lo que me está pasando:
Tengo una tabla con 2.000.000 de registros.
Tengo que acceder por 2 campos alfanuméricos, uno con un "=" y el otro
con un "like".
Sería algo así:
select * from tabla
where campoSTR1 = 'pepe'
and campoSTR2 like 'PE______________'
el problema es que esta query tarda unos 10 segundos la primera vez, y
luego unos 2 segundos el resto de veces.
Si cambio de apellido y vuelvo a lanzar la query, otros 10 segundos.
Tengo indice múltiple por campoSTR1,campoSTR2.
¿alguna idea?
Gracias a todos por vuestra ayuda.
Leer las respuestas