Difference between idx_tup_read and idx_tup_fetch on Postgres
When looking at the source code of the view, then you'll see that idx_tup_read
is the result of calling pg_stat_get_tuples_returned()
and idx_tup_fetch
is the result of calling pg_stat_get_tuples_fetched()
The manual describes the two functions as follows:
pg_stat_get_tuples_returned(oid)
Number of rows read by sequential scans when argument is a table, or number of index entries returned when argument is an index
pg_stat_get_tuples_fetched(oid)
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
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
so, the read
s are when index gives back position of the row required and fetch
es are when the index gives back the table rows themselves.