Rumah  >  Artikel  >  pangkalan data  >  Bagaimanakah Saya Boleh Mendapatkan Jumlah Hasil Secara Cekap untuk Penomboran dalam MySQL?

Bagaimanakah Saya Boleh Mendapatkan Jumlah Hasil Secara Cekap untuk Penomboran dalam MySQL?

DDD
DDDasal
2024-11-23 21:29:10133semak imbas

How Can I Efficiently Retrieve Total Results for Pagination in MySQL?

Mendapatkan Jumlah Hasil Penomboran dengan cekap dengan MySQL

Penomboran ialah ciri penting yang meningkatkan navigasi pengguna melalui set data yang besar. Dalam MySQL, ini selalunya dicapai menggunakan klausa OFFSET dan LIMIT untuk mengambil subset hasil tertentu. Walau bagaimanapun, untuk menentukan jumlah halaman yang diperlukan, anda perlu mengetahui jumlah kiraan hasil sebelum menggunakan parameter penomboran.

Secara tradisinya, pembangun akan melaksanakan pertanyaan dua kali: sekali dengan LIMIT untuk mendapatkan subset dan sekali lagi tanpa LIMIT untuk mengira keputusan. Pendekatan ini boleh mengakibatkan penggunaan sumber yang tidak perlu. Nasib baik, terdapat penyelesaian yang lebih cekap menggunakan petunjuk SQL_CALC_FOUND_ROWS:

Menggunakan SQL_CALC_FOUND_ROWS:

Untuk mengoptimumkan proses, tambah SQL_CALC_FOUND_ROWS pada pertanyaan SQL asal anda:

SELECT *
FROM table_name
WHERE category_id = 1
ORDER BY id
LIMIT 10 OFFSET 20
Ini memberitahu MySQL untuk mengira jumlah bilangan baris yang sepadan sebelum menggunakan parameter OFFSET dan LIMIT.

Dapatkan Jumlah Kiraan:

Selepas melaksanakan pertanyaan, anda boleh mendapatkan jumlah kiraan baris yang sepadan menggunakan pernyataan SQL berikut:

SELECT FOUND_ROWS()

Mengira Halaman:

Dengan jumlah kiraan dan parameter LIMIT diketahui, anda boleh mengira jumlah halaman dengan mudah:

$totalPages = ceil($totalCount / $limit);

Contoh Kod:

Dalam CodeIgniter, anda boleh menggunakan coretan kod berikut, dengan andaian anda telah mentakrifkan pertanyaan anda dalam $query pembolehubah:

$query->sql_calc_found_rows();
$result = $query->get();

$totalPages = ceil($this->db->query('SELECT FOUND_ROWS()')->row('FOUND_ROWS()') / $limit);
Dengan memanfaatkan SQL_CALC_FOUND_ROWS, anda boleh mendapatkan semula jumlah kiraan hasil dengan cekap tanpa melaksanakan pertanyaan tambahan, menjimatkan sumber pengiraan yang berharga dan meningkatkan prestasi ciri penomboran anda.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Jumlah Hasil Secara Cekap untuk Penomboran dalam MySQL?. 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