From: | Ricardo Mercado Araneda <rmercado(at)dportales(dot)cl> |
---|---|
To: | martin(at)bugs(dot)unl(dot)edu(dot)ar |
Cc: | pgsql-ayuda(at)tlali(dot)iztacala(dot)unam(dot)mx |
Subject: | Re: [Pgsql-ayuda] buena indexacion |
Date: | 2003-08-30 16:07:21 |
Message-ID: | 1062259641.30378.5.camel@rmercado.dportales.cl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Para indices que se usaran en comparaciones de igualdad usa hash
CREATE INDEX <nombre_indice> ON <nombre_tabla> USING hash (<Atributo>);
Para indices que se usaran en comparaciones de rangos de valores usa
btree
CREATE INDEX <nombre_indice> ON <nombre_tabla> USING btree (<Atributo>);
El vie, 08 de 08 de 2003 a las 15:50, Alvaro Herrera escribió:
> On Thu, Aug 07, 2003 at 12:06:07PM -0300, Martin Marques wrote:
> > Quisiera saber si hay documentacion de como indexar correctamente mis tablas,
> > especialmente con consultas que tienen condiciones sobre multiples columnas.
> >
> > Digamos, una duda que tengo es si el orden de las columnas es importante o no.
>
> Hmmm... no estoy seguro de si entiendo la pregunta. Si tienes una tabla
> blah (a, b, c, d)
>
> y tienes un indice
> idx_blah on blah (a, b, c)
>
> Ese indice se puede usar en:
> select * from blah where a=... AND b=... AND c=...
> select * from blah where a=... AND b=...
> select * from blah where a=...
> (tambien en consultas de rangos, o sea a<10 and a>5, incluso varios
> campos)
>
> NO se puede usar en
> select * from blah where b=... AND a=...
> select * from blah where b=...
>
> Si tienes un ejemplo mas concreto, seria mejor.
>
> Ojo, cuando tienes una clausula ORDER BY puede haber diferencias
> significativas. Por ej. es mucho mejor
> select * from blah where a=... and b=... order by a,b,c
> que
> select * from blah where a=... and b=... order by c
>
> (mira los EXPLAIN y EXPLAIN ANALYZE, deberia ser mas o menos obvio --
> hay un paso de SORT si el indice no entrega los resultados en el orden
> correcto, y ademas hay un paso innecesario de sort si omites las
> columnas en el ORDER BY por creer que es suficiente con restringirlos en
> la clausula WHERE)
--
_______________________________________________________________________________
RICARDO IGNACIO MERCADO ARANEDA
Rmercado(at)dportales(dot)cl
Dirección de Sistemas
Organización Educacional Diego Portales
(041)-910252 anexo 225
Concepción
From | Date | Subject | |
---|---|---|---|
Next Message | Rodrigo Alvarez | 2003-08-30 16:27:25 | [Pgsql-ayuda] Relacionar a travez de triggers |
Previous Message | Alvaro Herrera | 2003-08-30 15:33:17 | Re: [Pgsql-ayuda] Creacion de triggers |