PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Bagaimana cara mempercepat penghitungan baris dalam tabel PostgreSQL?

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Penerapan dan Pemeliharaan PostgreSQL dengan Ansible

  2. Jelaskan JOIN vs. LEFT JOIN dan WHERE kondisi saran kinerja secara lebih rinci

  3. Kembalikan baris dari INSERT dengan ON CONFLICT tanpa perlu memperbarui

  4. Dalam fungsi pemicu, cara mendapatkan bidang mana yang diperbarui

  5. Bagaimana cara menutup koneksi idle di PostgreSQL secara otomatis?