Re: Number of tuples in pg_class - bug or misunderstanding?
Bruce Momjian <pgman@candle.pha.pa.us>
From: Bruce Momjian <pgman@candle.pha.pa.us>
To: Martin Neumann <mne@mne.de>
Cc: pgsql-bugs@postgresql.org
Date: 2000-05-11T15:12:59Z
Lists: pgsql-bugs
> I'm just digging a little bit in PostgreSQL internals and I found the > following thing. Shouldn't the reltuples field in pg_class contain the > real number of tuples? It is always a little bit to low ... > > irc=# SELECT reltuples FROM pg_class WHERE relname = 'events'; > reltuples > ----------- > 188 > (1 row) > > irc=# SELECT COUNT(*) FROM events; > count > ------- > 195 > (1 row) > > > This annoys me a little bit as I can do > SELECT reltuples FROM pg_class WHERE relname = $1; > from plpgsql, but not > SELECT COUNT(*) FROM $1; reltuples is updated only by VACUUM. The performance hit is too great to keep it up-to-date, we think, though if it was accurate, we could optimize COUNT(*) with no WHERE. -- Bruce Momjian | http://www.op.net/~candle pgman@candle.pha.pa.us | (610) 853-3000 + If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania 19026