Обсуждение: reltuples < # of rows
I thought that the number of tuples in a table must be greater than the
number of rows? For one of my tables, I have the following:
# analyze t_stats;
ANALYZE
siteserverdb=# select reltuples, relpages from pg_class where relname =
't_stats';
reltuples | relpages
-----------+----------
1760 | 21119
(1 row)
siteserverdb=# select count(*) from t_stats;
count
-------
1861
(1 row)
How is this possible?
I'm running postgres 8.0 on a redhat ws3. Clearly I'm not vacuuming
enough, but that seems to be a separate issue to me. Am I seeing data
corruption?
Thanks,
Eric
Eric Brown
408-571-6341
www.propel.com
Eric Brown <eric.brown@propel.com> writes:
> I thought that the number of tuples in a table must be greater than the
> number of rows? For one of my tables, I have the following:
> # analyze t_stats;
> ANALYZE
> siteserverdb=# select reltuples, relpages from pg_class where relname =
> 't_stats';
> reltuples | relpages
> -----------+----------
> 1760 | 21119
> (1 row)
> siteserverdb=# select count(*) from t_stats;
> count
> -------
> 1861
> (1 row)
> How is this possible?
ANALYZE produces only an estimated reltuples. To be exact it would have
to scan the entire table.
regards, tom lane