Untuk perkiraan yang sangat cepat:
SELECT reltuples FROM pg_class WHERE relname = 'my_table';
Ada beberapa peringatan, meskipun. Pertama, relname
belum tentu unik di pg_class
. Mungkin ada beberapa tabel dengan relname
yang sama dalam beberapa skema database. Agar tidak ambigu:
SELECT reltuples::bigint FROM pg_class WHERE oid = 'my_schema.my_table'::regclass;
Jika Anda tidak memenuhi syarat skema nama tabel, cast ke regclass
mengamati search_path
. saat ini untuk memilih pertandingan terbaik. Dan jika tabel tidak ada (atau tidak dapat dilihat) di salah satu skema di search_path
Anda mendapatkan pesan kesalahan. Lihat Jenis Pengenal Objek dalam manual.
Pemeran ke bigint
memformat real
angka dengan baik, terutama untuk jumlah besar.
Juga, reltuples
bisa lebih atau kurang dari tanggal. Ada cara untuk menebus ini sampai batas tertentu. Lihat jawaban ini nanti dengan opsi baru dan lebih baik:
- Cara cepat untuk menemukan jumlah baris tabel di PostgreSQL
Dan kueri di pg_stat_user_tables
berkali-kali lebih lambat (meskipun masih jauh lebih cepat daripada hitungan penuh), karena itu adalah tampilan pada beberapa tabel.