COUNT and Performance ...

Поиск
Список
Период
Сортировка
От Hans-Jürgen Schönig
Тема COUNT and Performance ...
Дата
Msg-id 3E3CDD19.7040602@cybertec.at
обсуждение исходный текст
Ответы Re: COUNT and Performance ...  (Neil Conway <neilc@samurai.com>)
Re: COUNT and Performance ...  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: COUNT and Performance ...  (Arjen van der Meijden <acm@tweakers.net>)
Re: COUNT and Performance ...  (Bruce Momjian <pgman@candle.pha.pa.us>)
Список pgsql-hackers
This patch adds a note to the documentation describing why the
performance of min() and max() is slow when applied to the entire table,
and suggesting the simple workaround most experienced Pg users
eventually learn about (SELECT xyz ... ORDER BY xyz LIMIT 1).

Any suggestions on improving the wording of this section would be
welcome.

Cheers,


------

ORDER and LIMIT work pretty fast (no seq scan).
In special cases there can be another way to avoid seq scans:


action=# select tuple_count from pgstattuple('t_text');tuple_count
-------------      14203
(1 row)

action=# BEGIN;
BEGIN
action=# insert into t_text (suchid) VALUES ('100000');
INSERT 578606 1
action=# select tuple_count from pgstattuple('t_text');tuple_count
-------------      14204
(1 row)

action=# ROLLBACK;
ROLLBACK
action=# select tuple_count from pgstattuple('t_text');tuple_count
-------------      14203
(1 row)


If people want to count ALL rows of a table. The contrib stuff is pretty 
useful. It seems to be transaction safe.

The performance boost is great (PostgreSQL 7.3, RedHat, 166Mhz):


root@actionscouts:~# time psql action -c "select tuple_count from 
pgstattuple('t_text');"tuple_count
-------------      14203
(1 row)


real    0m0.266s
user    0m0.030s
sys     0m0.020s
root@actionscouts:~# time psql action -c "select count(*) from t_text"count
-------14203
(1 row)


real    0m0.701s
user    0m0.040s
sys     0m0.010s


I think that this could be a good workaround for huge counts (maybe 
millions of records) with no where clause and no joins.
   Hans

<http://kernel.cybertec.at>



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: On file locking
Следующее
От: Bruce Momjian
Дата:
Сообщение: Re: [mail] Re: Windows Build System