Re: columnas con dos datos posibles (M,F)

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.

In response to

Browse pgsql-es-ayuda by date

  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)