From: | Alejandro Gasca <agasca(at)yahoo(dot)com> |
---|---|
To: | Alejandro Gasca <agasca(at)yahoo(dot)com>, ayuda postgres <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: problema indice |
Date: | 2006-06-07 05:09:33 |
Message-ID: | 20060607050933.69469.qmail@web34309.mail.mud.yahoo.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
--- Alejandro Gasca <agasca(at)yahoo(dot)com> escribió:
> Saludos.
>
> Tengo un problema con un indice de una tabla. Tenía la base con un
> locale, pero la necesitaba con otro locale. Cree la nueva con:
> initdb --locale=es_MX.UTF-8 -E UTF8 -D /rutadb
>
> Y pase los datos de una a otra con el pg_dumpall...
>
> Pero, en una de las tablas no hace la búsqueda por índices, en la
> misma
> tabla, pero en diferentes bases, hace cosas distintas.
>
> En la base 1:
> explain select * from ponpon where nombre like 'n%';
> QUERY PLAN
>
>
-----------------------------------------------------------------------------
> Index Scan using ponpon_nombre on ponpon (cost=0.00..3.01 rows=1
> width=23)
> Index Cond: ((nombre >= 'n'::text) AND (nombre < 'o'::text))
> Filter: (nombre ~~ 'n%'::text)
> (3 rows)
>
> En la base 2:
>
> explain select * from ponpon where nombre like 'n%';
> QUERY PLAN
> ------------------------------------------------------------
> Seq Scan on ponpon (cost=0.00..350525.40 rows=1 width=23)
> Filter: (nombre ~~ 'n%'::text)
> (2 rows)
>
> Ahora, si en la base2 hago:
> explain select * from ponpon where ((nombre >= 'n'::text) AND (nombre
> <
> 'o'::text)); QUERY PLAN
>
-----------------------------------------------------------------------------
> Index Scan using ponpon_nombre on ponpon (cost=0.00..3.02 rows=1
> width=23)
> Index Cond: ((nombre >= 'n'::text) AND (nombre < 'o'::text))
> (2 rows)
>
> Si hace bien la búsqueda, por lo que el problema es cuando "pasa" el
> like 'n' a ((nombre >= 'n'::text) AND (nombre < 'o'::text))...
> creo...
>
> Gracias.
>
> __________________________________________________
> Correo Yahoo!
> Espacio para todos tus mensajes, antivirus y antispam ¡gratis!
> Regístrate ya - http://correo.espanol.yahoo.com/
>
> ---------------------------(fin del
> mensaje)---------------------------
> TIP 4: No hagas 'kill -9' a postmaster
>
Ups... perdón, venía en la sección 11.8 del manual :) había que ponerle
el text_pattern_ops:
create index ponpon_nombre_ops on ponpon (nombre text_pattern_ops)
y ahora si:
# explain select * from ponpon where nombre like 'r%';
QUERY PLAN
---------------------------------------------------------------------------------
Index Scan using ponpon_nombre_ops on ponpon (cost=0.00..6.01 rows=1
width=23)
Index Cond: ((nombre ~>=~ 'r'::text) AND (nombre ~<~ 's'::text))
Filter: (nombre ~~ 'r%'::text)
(3 rows)
Alejandro.
__________________________________________________
Correo Yahoo!
Espacio para todos tus mensajes, antivirus y antispam ¡gratis!
Regístrate ya - http://correo.espanol.yahoo.com/
From | Date | Subject | |
---|---|---|---|
Next Message | Jaime Casanova | 2006-06-07 06:05:08 | Re: log de postgres 8.1.3 |
Previous Message | Jaime Casanova | 2006-06-07 03:53:59 | Re: utf8_to_ascii |