optimización de busqueda por like

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.-

Responses

Browse pgsql-es-ayuda by date

  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