From: | Anita Ramirez <anita(dot)ins(at)gmail(dot)com> |
---|---|
To: | POSTGRES <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | optimización de busqueda por like |
Date: | 2011-11-15 18:11:24 |
Message-ID: | CAH0STeOChT_hF_BEdGepQZA+WaxytBQi4nxRO0z_xqabRLGGSg@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
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.-
From | Date | Subject | |
---|---|---|---|
Next Message | Harold Alexander Onore Harold | 2011-11-15 18:14:13 | SymmetricDS |
Previous Message | Alejandro Carrillo | 2011-11-15 17:36:07 | Re: Rv: recorrer old |