Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Mendapatkan Jumlah Kiraan Hasil Dengan Cekap Sebelum Menggunakan Klausa LIMIT dalam PostgreSQL?

Bagaimanakah Saya Boleh Mendapatkan Jumlah Kiraan Hasil Dengan Cekap Sebelum Menggunakan Klausa LIMIT dalam PostgreSQL?

DDD
DDDasal
2025-01-20 11:52:12808semak imbas

How Can I Efficiently Retrieve the Total Result Count Before Applying a LIMIT Clause in PostgreSQL?

Dapatkan kiraan keputusan dengan cekap sebelum LIMIT

Apabila bekerja dengan data pangkalan data, menentukan jumlah halaman adalah penting untuk memaparkan kawalan navigasi bermuka surat. Pendekatan tradisional ialah melakukan pertanyaan dua kali, tetapi ini tidak cekap. Artikel ini meneroka kaedah alternatif untuk menentukan kiraan hasil sambil meminimumkan bilangan pertanyaan yang diperlukan.

Fungsi tetingkap PostgreSQL

Bermula dengan PostgreSQL versi 8.4, fungsi tetingkap menyediakan cara yang berkesan untuk mengumpulkan kedua-dua keputusan kiraan penuh dan set hasil terhad dalam satu pertanyaan. Menggunakan klausa OVER() bersama dengan fungsi count(*), pembangun boleh mengira jumlah bilangan rekod yang akan dikembalikan sebelum menggunakan klausa LIMIT.

<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>

Adalah penting untuk ambil perhatian bahawa pendekatan ini mungkin lebih mahal dari segi pengiraan daripada hanya mendapatkan set hasil terhad. Oleh itu, adalah disyorkan untuk menggunakan kaedah ini apabila kedua-dua kiraan lengkap dan set keputusan terhad diperlukan.

Cara alternatif untuk mendapatkan kiraan

Jika kiraan penuh tidak diperlukan, terdapat cara lain untuk mendapatkan semula kiraan baris yang terjejas. PostgreSQL mengekalkan maklumat simpan kira dalaman yang boleh diakses oleh pelanggan. Dalam PHP, anda boleh menggunakan fungsi pg_num_rows untuk tujuan ini. Selain itu, plpgsql menyediakan perintah GET DIAGNOSTICS untuk mendapatkan semula kiraan baris.

Tertib pelaksanaan pertanyaan PILIH

Adalah penting untuk memahami susunan SELECT pertanyaan dilaksanakan, yang mempengaruhi cara klausa LIMIT dan OFFSET digunakan. Klausa WHERE menapis baris yang layak daripada jadual asas dan fungsi tetingkap digunakan pada subset yang ditapis.

Pertimbangan prestasi OFFSET

Walaupun OFFSET berguna untuk paging, ia menjadi semakin kurang cekap apabila bilangan baris dalam jadual bertambah. Sila pertimbangkan untuk menggunakan alternatif seperti memanfaatkan kursor atau menggunakan OFFSET untuk mengoptimumkan pertanyaan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Jumlah Kiraan Hasil Dengan Cekap Sebelum Menggunakan Klausa LIMIT dalam PostgreSQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn