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