[Pgsql-ayuda] Indices!!!

Leonardo Boet Sánchez boet@gtm.tel.etecsa.cu
Wed, 17 Mar 2004 14:24:35 -0500


Buenos días,
Tengo una duda en cuanto al orden de los índices. Parece que entendí mal lo que se habló en días atrás.
El otro día se habló de que cuando alguíen hace un índice multiple que tiene un orden y se hace un select donde la condicion de busqueda es diferente el orden no coge el indice. Aquí les mando un ejemplo concreto:
Tengo una tabla que tiene 24 columnas y 1300000 registros esto es 1 millon 300 000 registros:
Tengo los siguiente indices:
CREATE INDEX inde1  ON public.datos1 USING btree  (mfac, nutf, digi);
CREATE INDEX inde2  ON public.datos1 USING btree  (nutf);
CREATE INDEX inde3  ON public.datos1 USING btree  (mfac);

Hago las siguiente consulta:
select * from datos1 where mfac='02' and nutf='4186' and digi = '32-' ;
select * from datos1 where nutf='4186'  and mfac='02' and digi = '32-' ;
select * from datos1 where digi = '32-' and mfac='02' and nutf='4186'  ;

Estas tres consulta consumen el mismo tiempo 33 milisegundos en ejecutarse, si se dan cuenta las 2 últimas tienen un indice diferentes al que tengo (en el orden).

El servidorcito es un PII a 300 MHz, 384 MB de RAM, no tengo arreglos de discos, Red Hat 9.0 y postgres 7.4.1.
Al parecer el orden no tiene nada que ver, ¿esto es real? o ¿es que no me dí cuenta de algún detalle? o ¿entendí otra cosa?.

Leonardo Boet Sánchez
Especialista Analisis de Sistemas.
ETECSA. Gerencia Guantánamo.
Telef. 381797, 381018 ext 4208