From: | Alvaro Herrera <alvherre(at)commandprompt(dot)com> |
---|---|
To: | marcelo Cortez <jmdc_marcelo(at)yahoo(dot)com(dot)ar> |
Cc: | Luis Salas <lsalas(at)safp(dot)cl>, pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: columnas con dos datos posibles (M,F) |
Date: | 2008-01-10 16:14:28 |
Message-ID: | 20080110161428.GH6465@alvh.no-ip.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
marcelo Cortez escribió:
> Una pregunta, un indice con clausula where
>
> create index i_ejemplo on afiliados( sexo,region)
> where sexo = 'M' ;
>
> no ayudaria?
> si la respuesta es no, porque?
Porque la selectividad es muy baja --- traería la mitad de la tabla. Si
uno de los estados fuera mucho más frecuente que el otro (por ejemplo en
los casos en que tienes un campo de anulación para facturas, y las
anulaciones no son muy frecuentes) entonces puede ser conveniente tener
un índice parcial.
Cuando se trae una parte muy grande de la tabla, usar el índice no sirve
para nada porque hay que recorrer _además_ de la tabla, el índice; y eso
causa I/O adicional, sin dar ningún beneficio. Puedes probarlo haciendo
una tabla grande y forzando un indexscan con set enable_seqscan to off,
y comparando cuanto se demora en ambos casos.
--
Alvaro Herrera http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.
From | Date | Subject | |
---|---|---|---|
Next Message | Guido Barosio | 2008-01-10 16:47:07 | Re: RV: Consultar Secuencias |
Previous Message | marcelo Cortez | 2008-01-10 15:53:12 | Re: columnas con dos datos posibles (M,F) |