Skip site navigation (1) Skip section navigation (2)

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 (view raw or flat)
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

pgsql-es-ayuda by date

Next:From: Ernesto QuiñonesDate: 2008-01-29 19:15:17
Subject: Re: busqueda no esta usando un indice
Previous:From: Ernesto QuiñonesDate: 2008-01-29 18:52:07
Subject: busqueda no esta usando un indice

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group