On Postgres 8.4 when you do:
select * from pg_stat_all_indexes where relname = 'table_name';
It returns the fields idx_tup_read and idx_tup_fetch, what is the difference?
When looking at the source code of the view, then you'll see that
idx_tup_read is the result of calling
idx_tup_fetch is the result of calling
The manual describes the two functions as follows:
Number of rows read by sequential scans when argument is a table, or number of index entries returned when argument is an index
Number of table rows fetched by bitmap scans when argument is a table, or table rows fetched by simple index scans using the index when argument is an index
The official documentation page says that the difference between them appears:
In all these cases
idx_tup_read becomes greater than
From postgresql docs,
idx_tup_read is number of index entries returned by scans on this index idx_tup_fetch is number of live table rows fetched by simple index scans using this index
reads are when index gives back position of the row required and
fetches are when the index gives back the table rows themselves.