Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Mendapatkan Jumlah Kiraan Keputusan dengan Cekap dalam PostgreSQL Sebelum Memohon LIMIT?

Bagaimana untuk Mendapatkan Jumlah Kiraan Keputusan dengan Cekap dalam PostgreSQL Sebelum Memohon LIMIT?

DDD
DDDasal
2024-12-13 22:48:11701semak imbas

How to Efficiently Retrieve Total Result Count in PostgreSQL Before Applying LIMIT?

Pendekatan Optimum untuk Mendapatkan Kiraan Keputusan Sebelum Mengehadkan Permohonan

Dalam halaman pangkalan data, menentukan jumlah halaman adalah penting untuk menghasilkan kawalan penomboran. Walau bagaimanapun, melaksanakan pertanyaan kiraan dan had yang berasingan untuk tujuan ini boleh menjadi tidak cekap. Artikel ini meneroka teknik yang dipertingkatkan untuk mendapatkan kiraan hasil tanpa menggunakan had pangkalan data.

Fungsi Tetingkap Postgres

PostgreSQL versi 8.4 dan kemudiannya memperkenalkan fungsi tetingkap, membolehkan pengiraan fungsi agregat ke atas subset terbahagi bagi data. Ini membolehkan kami menentukan jumlah kiraan dan mendapatkan hasil terhad dalam satu pertanyaan.

SELECT foo,
       COUNT(*) OVER() AS full_count
FROM bar
WHERE <some condition>
ORDER BY <some col>
LIMIT <pagesize>
OFFSET <offset>;

Walau bagaimanapun, kaedah ini mungkin memerlukan overhed prestasi tambahan kerana ia memerlukan pengiraan semua baris yang layak, yang berpotensi menjejaskan prestasi untuk besar. jadual atau nilai OFFSET hampir dengan jumlah kiraan baris.

Pilihan Alternatif untuk Keputusan Kira

Dalam kes di mana prestasi menjadi kebimbangan, pendekatan alternatif boleh digunakan untuk mendapatkan kiraan akhir baris yang terjejas, bebas daripada aplikasi OFFSET dan LIMIT. Simpan kira dalaman Postgres menjejaki maklumat ini, yang boleh diakses oleh sesetengah pelanggan.

  • PL/pgSQL: Dapatkan semula kiraan baris selepas melaksanakan perintah SQL menggunakan GET DIAGNOSTICS.
  • PHP: Gunakan fungsi pg_num_rows untuk menentukan bilangan baris yang terjejas.

Sumber Tambahan

  • [Mengira Bilangan Baris Terjejas oleh Pertanyaan Kelompok dalam PostgreSQL](https://dba.stackexchange.com/questions/247142/calculate-number-of-rows-affected-by-batch-query-in-postgresql)

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Jumlah Kiraan Keputusan dengan Cekap dalam PostgreSQL Sebelum Memohon LIMIT?. 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