Thread: 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