Re: busqueda no esta usando un indice

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

In response to

Responses

Browse pgsql-es-ayuda by date

  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