Buenas tardes,

Resulta que tengo una función que realiza varias validaciones, inserciones
etc. Una de ellas es realizar búsqueda por like a una tabla. Básicamente
tengo dos tablas "alumno" y "persona", a cada alumno  se debe buscar en la
tabla persona, y para ello solo contamos con nombres y apellidos (nombre
completo, es decir en un solo campo y campos separados, es decir nombre1,
nombre2, apellido1, apellido2), por lo que inicialmente procedemos a buscar
por "=", considerando mayusculas, minusculas, caracteres especiales, si eso
no emite resultado procedemos a buscar por like en los campos separados, y
si nuevamente no emite resultados, se realiza nuevamente la búsqueda por
like en el campo que contiene el nombre y apellido completo.

La tabla persona en la que se realiza la búsqueda tiene aproximadamente
580000 registros. Probé con indices btree, y también leí acerca de
varchar_pattern_ops, pero con éste ultimo no es posible utilizar "es
igual", por lo que no me resulta.

Tal cual como se encuentra ahora por 50 registros tarda 6 minutos
aproximadamente, lo cual es mas que excesivo.

Alguna idea?

Desde ya, gracias.

Ana Ramirez.-

Responder a