Re: Inquietud sobre Count()

From: Jaime Casanova <systemguards(at)gmail(dot)com>
To: David Prieto <davidp(at)sgth(dot)es>
Cc: Gregorio Diaz <gregorio_diaz(at)yahoo(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Inquietud sobre Count()
Date: 2006-01-18 14:08:38
Message-ID: c2d9e70e0601180608h7b7b85f6v1fb8d46298da8f0f@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On 1/18/06, David Prieto <davidp(at)sgth(dot)es> wrote:
>
> > Porque Count no usa los indices o algo asi ?
>
> Si count tiene que recorrerse todos los registros para contarlos uno a uno
> ¿Qué solucionaría usando indices?
>
> Un saludo,
> David Prieto
>
>

que el tamaño de los indices es por definicion mas pequeño que el de
los registros en la tabla, asi que podria traer mas a la vez y eso
reduciria la cantidad de lecturas a discos y sí habria ganancia...

el problema es que para que eso ocurra, es decir, una lectura solo
indice (sin necesidad de visitar la tupla), el indice necesita tener
informacion sobre si la tupla es visible o no para esa transaccion...
y los indices no tienen ese tipo de informacion por que seria muy
costoso y/o muy complicado mantener esa informacion sin crear
"condiciones de carrera"...

Se han sugerido algunas soluciones pero no es tan facil como decir
"deberia usar un indice"...

en todo caso, el problema existe basicamente para "select count(*)
from tabla", si usas un where no es tan costoso... y la verdad, puesto
que "select count(*) from tabla" no es una operacion que alguien
normalmente haria...

--
Atentamente,
Jaime Casanova
(DBA: DataBase Aniquilator ;)

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Carlos 2006-01-18 14:33:16 {Spam?} Re: funcion recursiva
Previous Message Jaime Casanova 2006-01-18 13:57:01 Re: [GENERAL] migrar