Re: INDICE CON "like"

From: "Antonio Quintana" <aquintana(at)aguasdeformosa(dot)com(dot)ar>
To: "Edwin Quijada" <listas_quijada(at)hotmail(dot)com>, <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: INDICE CON "like"
Date: 2009-07-30 14:23:02
Message-ID: 01a101ca1121$3f82f360$1c0101c8@aquintana
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Lo que quiero hacer es una busqueda con comodines dentro del campo como ser

"*XXX*", la unica forma es con FTS? , no existe otra?

Muchas Gracias.

----- Original Message -----
From: "Edwin Quijada" <listas_quijada(at)hotmail(dot)com>
To: <aquintana(at)aguasdeformosa(dot)com(dot)ar>; <pgsql-es-ayuda(at)postgresql(dot)org>
Sent: Thursday, July 30, 2009 10:48 AM
Subject: RE: [pgsql-es-ayuda] INDICE CON "like"

Postgres no indexa con like. Tendras que tirar de FTS porque por ahi no
podras poner indice

*-------------------------------------------------------*
*-Edwin Quijada
*-Developer DataBase
*-JQ Microsistemas

*-Soporte PostgreSQL

*-www.jqmicrosistemas.com
*-809-849-8087
*-------------------------------------------------------*

________________________________
> From: aquintana(at)aguasdeformosa(dot)com(dot)ar
> To: pgsql-es-ayuda(at)postgresql(dot)org
> Subject: [pgsql-es-ayuda] INDICE CON "like"
> Date: Thu, 30 Jul 2009 10:18:54 -0300
>
>
>
>
>
>
>
>
>
>
> Tengo postgres 8.3.4 sobre debian.
>
> Una tabla de 36.000.000 de registros que es un
> padron de usuarios.
>
> Con estos indices.
>
> El problema es que cuando hago:
>
> select * from rrjpadron
>
> where nombre="XXX"
>
> entra por el indice que corresponde.
>
>
>
>
>
> Pero cuando hago
>
> select * from rrjpadron
>
> where nombre like '%XXXX%'
>
> no lo hace por ningun indice.
>
>
>
> Que falta hacer?
>
>
>
>
>
> CREATE TABLE rrjpadron
> (
> num_doc
> numeric(8),
> tipodoc character varying(4),
> sexo
> character(1),
> clase numeric(4),
> nombre character
> varying(20),
> direccion character varying(20),
> ciudad
> character varying(17),
> localidad character varying(17),
>
> provincia character varying(4),
> profesion character
> varying(10)
> )
> WITH (OIDS=FALSE);
> ALTER TABLE rrjpadron OWNER TO
> postgres;
> GRANT ALL ON TABLE rrjpadron TO postgres;
> GRANT ALL ON TABLE
> rrjpadron TO admins WITH GRANT OPTION;
>
>
>
> -- Index: rrjpadron4
>
>
>
> -- DROP INDEX rrjpadron4;
>
>
>
> CREATE INDEX rrjpadron4
> ON
> rrjpadron
> USING btree
> (num_doc, lower(nombre::text),
> lower(sexo::text), lower(provincia::text));
>
>
>
> -- Index: rrjpadron5
>
>
>
> -- DROP INDEX rrjpadron5;
>
>
>
> CREATE INDEX rrjpadron5
> ON
> rrjpadron
> USING btree
> (lower(nombre::text),
> lower(sexo::text), lower(provincia::text));
>
>
>
> -- Index: rrjpadron6
>
>
>
> -- DROP INDEX rrjpadron6;
>
>
>
> CREATE INDEX rrjpadron6
> ON
> rrjpadron
> USING btree
> (nombre, sexo,
> provincia);
>
>
>
> -- Index: rrjpadron7
>
>
>
> -- DROP INDEX rrjpadron7;
>
>
>
> CREATE INDEX rrjpadron7
> ON
> rrjpadron
> USING btree
> (num_doc, nombre, sexo,
> provincia);
>
>
>
>
>
> Antonio
>
>
>
>
_________________________________________________________________

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Fernando Hevia 2009-07-30 14:31:37 RE: Bajo rendimiento en postgresql cuando se lanza un delete
Previous Message Felipe Hernández 2009-07-30 14:11:44 Re: Bajo rendimiento en postgresql cuando se lanza un delete