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 по дате отправления: