Apa arti dari n_live_tup
dan n_dead_tup
di dalam pg_stat_user_tables
atau pgstattuple
?
Apa arti dari n_live_tup
dan n_dead_tup
di dalam pg_stat_user_tables
atau pgstattuple
?
Jawaban:
Kedua kolom tersebut adalah hasil dari
SELECT pg_stat_get_live_tuples(c.oid) AS n_live_tup
, pg_stat_get_dead_tuples(c.oid) AS n_dead_tup
FROM pg_class c;
Merupakan jumlah baris hidup dan mati (tupel) dalam tabel.
Temukan fungsi - fungsi itu di manual .
Baris mati adalah baris yang dihapus yang nantinya akan digunakan kembali untuk baris baru dari INSERT
s atau UPDATE
s (spasi, bukan data). Beberapa baris mati (atau ruang kosong yang disediakan) dapat sangat berguna untuk pembaruan HOT (Heap-Only Tuples) yang dapat menggunakan kembali ruang di halaman data yang sama secara efisien. Lebih lanjut tentang HOT:
Atau baris mati dapat dihapus oleh VACUUM FULL
(atau polos VACUUM
jika beruntung) atau operasi serupa di atas meja, sehingga menyusut tabel fisik sesuai.
Setiap kali baris dihapus atau diperbarui, versi baris lama menjadi tidak terlihat oleh semua transaksi lainnya dimulai setelah transaksi dilakukan. Baris tersebut benar-benar mati segera setelah tidak ada lagi transaksi lama yang tidak dikomit. Itu diperlukan untuk model MVCC PostgreSQL untuk menangani konkurensi.
Itu hanya statistik . Anda harus mengaktifkan pengumpulan statistik postgresql.conf
jika Anda ingin mereka diperbarui secara otomatis. track_counts
harus diaktifkan secara default. Ingatlah bahwa statistik tidak diperbarui secara instan. Baca lebih lanjut tentang itu di manual .
SELECT n_live_tup FROM pg_stat_user_tables WHEN relname = 'mytable';
Mengapa ini menunjukkan nol?mytable
memiliki 6 baris.