Re: Select max(foo) and select count(*) optimization

Поиск
Список
Период
Сортировка
От D'Arcy J.M. Cain
Тема Re: Select max(foo) and select count(*) optimization
Дата
Msg-id 200401060718.08444.darcy@druid.net
обсуждение исходный текст
Ответ на Re: Select max(foo) and select count(*) optimization  (Shridhar Daithankar <shridhar_daithankar@persistent.co.in>)
Ответы Re: Select max(foo) and select count(*) optimization
Re: Select max(foo) and select count(*) optimization
Список pgsql-performance
On January 6, 2004 01:42 am, Shridhar Daithankar wrote:
> On Tuesday 06 January 2004 01:22, Rod Taylor wrote:
> > Anyway, with Rules you can force this:
> >
> > ON INSERT UPDATE counter SET tablecount = tablecount + 1;
> >
> > ON DELETE UPDATE counter SET tablecount = tablecount - 1;
>
> That would generate lot of dead tuples in counter table. How about
>
> select relpages,reltuples from pg_class where relname=<tablename>;
>
> Assuming the stats are recent enough, it would be much faster and
> accurate..

Well, I did this:

cert=# select relpages,reltuples from pg_class where relname= 'certificate';
 relpages |  reltuples
----------+-------------
   399070 | 2.48587e+07
(1 row)

Casting seemed to help:

cert=# select relpages,reltuples::bigint from pg_class where relname=
'certificate';
 relpages | reltuples
----------+-----------
   399070 |  24858736
(1 row)

But:

cert=# select count(*) from certificate;
[*Crunch* *Crunch* *Crunch*]
  count
----------
 19684668
(1 row)

Am I missing something?  Max certificate_id is 20569544 btw.

--
D'Arcy J.M. Cain <darcy@{druid|vex}.net>   |  Democracy is three wolves
http://www.druid.net/darcy/                |  and a sheep voting on
+1 416 425 1212     (DoD#0082)    (eNTP)   |  what's for dinner.

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

Предыдущее
От: Shridhar Daithankar
Дата:
Сообщение: Re: Select max(foo) and select count(*) optimization
Следующее
От: Shridhar Daithankar
Дата:
Сообщение: Re: Select max(foo) and select count(*) optimization