Re: duda en COUNT(*) o COUNT(campo_entidad)???

From: "Mario Gonzalez" <gonzalemario(at)gmail(dot)com>
To: Marco Antonio Frias Butrón <marcoantoniofrias(at)gmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: duda en COUNT(*) o COUNT(campo_entidad)???
Date: 2007-08-13 15:21:04
Message-ID: 2065a6cf0708130821r288711d0v84bf46cecd1a1a9d@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On 13/08/07, Marco Antonio Frias Butrón <marcoantoniofrias(at)gmail(dot)com> wrote:
> hola, tengo la duda al hacer un conteo de cuantos registros cumplen
> una cierta condición, cuando se hace select count(*) o select
> count(campo_entidad) cual de estas es más eficiente... si la segunda
> es la mejor hacer el conteo por el campo que tiene PK es más
> óptimo???... yo he estado utilizando count(id_entidad) donde este
> id_entidad es la llave primaria...
>

Si es imprescindible usar COUNT es mejor que lo hagas con algún
campo ordenado con CLUSTER. Porque COUNT ejecuta operaciones que
involucran un recorrido generalmente completo de una tabla o en otros
casos, parcial.

Al hacer un CLUSTER le dices a PostgreSQL que haga el ordenamiento
físico en el disco y así la cabeza lectora no tendrá que moverse tanto
como si los datos no estuvieran ordenados. Es probable que tengas
mejoras de ese modo.

Si en tu caso COUNT se empieza a demorar más de la cuenta (o al menos
más de lo que esperabas) debes revisar la periodicidad con la que
ejecutas ANALIZE, si aún así tienes problemas de rendimiento, quizá no
te queda otra que usar vistas materializadas.

>

--
http://www.advogato.org/person/mgonzalez/

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Edwin Perez Lozano 2007-08-13 15:27:10 tablespace
Previous Message Marco Antonio Frias Butrón 2007-08-13 15:05:30 duda en COUNT(*) o COUNT(campo_entidad)???