From: | "Silvio Quadri" <silvioq(at)gmail(dot)com> |
---|---|
To: | Ernesto Quiñones <ernestoq(at)gmail(dot)com> |
Cc: | ListaPostGres <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: busqueda no esta usando un indice |
Date: | 2008-01-29 19:02:48 |
Message-ID: | 61dc71dc0801291102k326537ya215a43bece33446@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
2008/1/29, Ernesto Quiñones <ernestoq(at)gmail(dot)com>:
>
> Hola amigos
>
> estuve probando un query en un a tabla con 250k registros
>
> en esta tabla existe una columna que es un char(1) que solo almacena 4
> valores
>
> P, M, C o un espacio en blanco
>
> le cree un indice a esta columna para poder buscar mas rápido ahí. al
> procesar cuando hago un simple
>
> select * from tabla where campo = 'C' <-- usa el indice
>
> pero si hago un :
>
> select * from tabla where campo <> 'C' <-- no usa el indice...porque?
> el explain analyze me devuelve un seq scan
>
> pense que quizas era el tema de que mandaba un <> asi que probem andando
> un "in"
>
> select * from tabla where campo in ('P', 'M', 'C') <--- pero esto
> tampoco esta usando el indice
>
> alguien me podría decir como hacer para que postgresql use el indice
> de este campo??
Probá haciendo
select campo, count(*)
from tabla
group by campo
Si la cantidad de <> "C" es muy grande, muy probablemente el postgres decida
no usar el índice.
--
Silvio Quadri
From | Date | Subject | |
---|---|---|---|
Next Message | Ernesto Quiñones | 2008-01-29 19:15:17 | Re: busqueda no esta usando un indice |
Previous Message | Ernesto Quiñones | 2008-01-29 18:52:07 | busqueda no esta usando un indice |