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

From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: Mario Wojcik <mariowojcik(at)yahoo(dot)com(dot)ar>
Cc: Marco Antonio Frias Butrón <marcoantoniofrias(at)gmail(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: duda en COUNT(*) o COUNT(campo_entidad)???
Date: 2007-08-16 13:44:30
Message-ID: 20070816134430.GI21236@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Mario Wojcik escribió:
> Marco Antonio Frias Butrón escribió:
>> voy a revisar todo el tema de CLUSTER y pensaré sobre lo que indicas
>> alvaro, tengo entidades de 150.000, 200000 y 360.000 registros
>> modificables cada 4 o más semanas, gracias por responder...
>>
>>
> Gente, en caso de necesitar un count(*) no seria mejor un trigger que
> modifique una tabla con nombre de tabla y cantidad de registros?
> Incrementa la cantidad en el insert y decrementa en el delete.
> Seria mucho mas rápido consultar el campo de la lista de tablas.

El problema es que hacerlo de esa forma crea un punto de contencion:
cada transaccion que quiera hacer un UPDATE debera esperar a otra que lo
este haciendo en ese momento.

Una idea mejor es llevar un contador con deltas, cada transaccion
inserta un delta de "+1" en insert y "-1" en delete. Cuando quieras
contar, sumas todos los deltas correspondientes. De vez en cuando un
proceso limpiador recorre la tabla de deltas y construye una "suma
total" que se guarda como un solo delta.

Algun dia alguien deberia implementar esto para tener el codigo de
ejemplo en alguna parte ...

--
Alvaro Herrera Developer, http://www.PostgreSQL.org/
"Before you were born your parents weren't as boring as they are now. They
got that way paying your bills, cleaning up your room and listening to you
tell them how idealistic you are." -- Charles J. Sykes' advice to teenagers

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message WILLIAM PARRA 2007-08-16 13:48:43 Re: Como activar o instalar el plpgsql
Previous Message Miguel Bernilla Sánchez 2007-08-16 13:39:09 Re: SELECT