From: | Emanuel Calvo <postgres(dot)arg(at)gmail(dot)com> |
---|---|
To: | Anita Ramirez <anita(dot)ins(at)gmail(dot)com> |
Cc: | POSTGRES <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: [pgsql-es-ayuda] optimización de busqueda por like |
Date: | 2011-11-16 15:53:16 |
Message-ID: | CAGHEX6ZUy9mhNnDd+HWOmWWSQsTCd2Lm6_qT2=1psJ-7QDy7QQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
El día 15 de noviembre de 2011 19:11, Anita Ramirez
<anita(dot)ins(at)gmail(dot)com> escribió:
>
> 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.-
>
Migrar a 9.1 es una opción?
--
--
Emanuel Calvo
Helpame.com
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2011-11-16 16:05:12 | Re: optimización de busqueda por like |
Previous Message | Alvaro Herrera | 2011-11-16 15:52:15 | Re: Rv: recorrer old |