Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Mendapatkan Jumlah Kiraan Hasil dengan Cekap untuk Data Penomboran dalam PostgreSQL?
Optimumkan pengambilan kiraan hasil data paging
Apabila melaksanakan fungsi paging bagi pengambilan data, menentukan jumlah halaman adalah penting untuk memaparkan kawalan paging dengan tepat. Pendekatan biasa ialah menjalankan dua pertanyaan: satu menggunakan fungsi COUNT() untuk mendapatkan jumlah hasil dan satu lagi menggunakan klausa LIMIT untuk memaparkan data halaman semasa.
Bagaimanapun, pendekatan ini tidak cekap. PostgreSQL telah memperkenalkan fungsi tetingkap sejak versi 8.4, memberikan penyelesaian yang lebih baik.
Gunakan fungsi tetingkap
Fungsi tetingkap COUNT(*) OVER() membolehkan kami mengira jumlah bilangan hasil dalam pertanyaan sambil mendapatkan data terhad. Contohnya adalah seperti berikut:
<code class="language-sql">SELECT foo, COUNT(*) OVER() AS full_count FROM bar WHERE <some condition=""> ORDER BY <some col=""> LIMIT <pagesize> OFFSET <offset>;</code>
Lajur full_count menyediakan jumlah bilangan hasil sebelum klausa LIMIT dan OFFSET digunakan. Ambil perhatian bahawa pendekatan ini mungkin memberi kesan kepada prestasi kerana ia memerlukan pengiraan semua baris yang layak. Kesannya adalah minimum untuk jadual yang lebih kecil atau di mana full_count kurang daripada HAD OFFSET. Walau bagaimanapun, untuk set hasil yang lebih besar, adalah wajar mempertimbangkan alternatif.
Kaedah alternatif untuk kiraan akhir
Selain fungsi tetingkap, terdapat cara lain untuk mendapatkan kiraan akhir tanpa mengira kiraan penuh:
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Jumlah Kiraan Hasil dengan Cekap untuk Data Penomboran dalam PostgreSQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!