Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mendapatkan Jumlah Kiraan Hasil dengan Cekap dalam Pertanyaan Bernombor tanpa Berbilang Pertanyaan SQL?

Bagaimana untuk Mendapatkan Jumlah Kiraan Hasil dengan Cekap dalam Pertanyaan Bernombor tanpa Berbilang Pertanyaan SQL?

Barbara Streisand
Lepaskan: 2025-01-20 12:23:09
asal
212 orang telah melayarinya

How to Efficiently Get Total Result Count in Paginated Queries without Multiple SQL Queries?

Mengoptimumkan Pertanyaan Bernombor: Mendapatkan Jumlah Kiraan Hasil Dengan Cekap

Penomboran yang cekap memerlukan mengetahui jumlah bilangan hasil untuk memaparkan kawalan penomboran dengan tepat. Kaedah konvensional melibatkan dua pertanyaan berasingan: satu untuk mengira semua hasil dan satu lagi untuk mengambil data halaman semasa. Pendekatan ini, bagaimanapun, boleh menjadi tidak cekap.

Pendekatan SQL yang Lebih Cekap

PostgreSQL menawarkan penyelesaian unggul yang memanfaatkan fungsi tetingkap (tersedia sejak versi 8.4). Fungsi COUNT(*) OVER() membolehkan mendapatkan kedua-dua jumlah kiraan dan hasil penomboran dalam satu pertanyaan:

<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>
Salin selepas log masuk

Adalah penting untuk ambil perhatian bahawa kaedah ini, walaupun elegan, boleh memberi kesan kepada prestasi pada jadual yang sangat besar disebabkan oleh pengiraan kiraan baris penuh. Pertimbangan yang teliti terhadap pertukaran prestasi adalah perlu.

Strategi Alternatif untuk Pengoptimuman Prestasi

Untuk prestasi yang dipertingkatkan dengan set data yang besar, pertimbangkan alternatif ini:

  • Menggunakan mekanisme dalaman PostgreSQL untuk mendapatkan semula kiraan baris yang terjejas melalui fungsi sisi klien seperti GET DIAGNOSTICS dan pg_num_rows.
  • Mengoptimumkan pertanyaan yang menggunakan OFFSET pada jadual yang luas untuk meningkatkan kecekapan. Ini mungkin melibatkan strategi pengindeksan atau struktur pertanyaan alternatif.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Jumlah Kiraan Hasil dengan Cekap dalam Pertanyaan Bernombor tanpa Berbilang Pertanyaan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan