Perbedaan antara idx_tup_read dan idx_tup_fetch pada Postgres


11

Di Postgres 8.4 saat Anda melakukannya:

select * from pg_stat_all_indexes where relname = 'table_name';

Ia mengembalikan bidang idx_tup_read dan idx_tup_fetch, apa bedanya?

Jawaban:


12

Saat melihat kode sumber tampilan, maka Anda akan melihat bahwa itu idx_tup_readadalah hasil dari panggilan pg_stat_get_tuples_returned()dan idx_tup_fetchmerupakan hasil dari panggilanpg_stat_get_tuples_fetched()

Manual ini menjelaskan dua fungsi sebagai berikut:

pg_stat_get_tuples_returned (oid)

Jumlah baris yang dibaca oleh pemindaian sekuensial ketika argumen adalah sebuah tabel, atau jumlah entri indeks yang dikembalikan ketika argumen adalah indeks

pg_stat_get_tuples_fetched (oid)

Jumlah baris tabel yang diambil oleh scan bitmap saat argumen adalah tabel, atau baris tabel yang diambil oleh scan indeks sederhana menggunakan indeks ketika argumen adalah indeks


1

Dari 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

jadi, reads adalah ketika indeks mengembalikan posisi baris yang diperlukan dan fetchjuga ketika indeks mengembalikan baris tabel itu sendiri.


0

Halaman dokumentasi resmi mengatakan bahwa perbedaan di antara mereka muncul:

  1. ketika indeks terlibat dalam pemindaian indeks bitmap
  2. jika ada baris yang mati atau yang belum berkomitmen diambil menggunakan indeks
  3. jika ada heap fetch, dihindari dengan scan indeks saja
  4. ketika indeks diakses oleh cek pengoptimal

Dalam semua kasus ini idx_tup_readmenjadi lebih besar dari idx_tup_fetch.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.