COUNT() vs. mysql_num_rows(): Mana yang Terbaik untuk Penomboran dalam Jadual Besar?

Linda Hamilton
Lepaskan: 2024-11-02 08:02:03
asal
207 orang telah melayarinya

  COUNT() vs. mysql_num_rows(): Which is Best for Pagination in Large Tables?

Mengoptimumkan Penomboran untuk Hasil Carian dengan Jadual Besar

Apabila bekerja dengan jadual yang luas, pengoptimuman penomboran menjadi penting untuk mengekalkan prestasi tapak web. Artikel ini meneroka perdebatan antara menggunakan SELECT COUNT() dan mysql_num_rows() untuk menentukan penomboran untuk hasil carian, terutamanya dalam konteks jadual besar.

Masalah timbul kerana SELECT COUNT() boleh menjadi tidak cekap untuk jadual dengan berjuta-juta rekod, manakala mysql_num_rows() memerlukan pengambilan keseluruhan set hasil sebelum menentukan kiraan baris. Ini boleh melambatkan penomboran untuk hasil carian.

Satu pendekatan ialah menyimpan jadual berasingan untuk jumlah kiraan baris, yang boleh dikemas kini semasa operasi INSERT dan DELETE untuk menyediakan akses yang lebih pantas kepada kiraan. Walau bagaimanapun, kaedah ini mungkin tidak sesuai untuk hasil carian, di mana kiraan boleh berbeza-beza bergantung pada kriteria carian.

Penyelesaian yang lebih baik ialah menggunakan COUNT() secara dalaman. Apabila menggunakan COUNT(), pelayan mengoptimumkan pertanyaan dan hanya memperuntukkan memori untuk hasil kiraan, mengelakkan keperluan untuk memproses dan mengambil keseluruhan set hasil. Ini boleh meningkatkan prestasi hasil carian dengan ketara.

Sebagai contoh, bukannya menggunakan SELECT COUNT(id) untuk menentukan kiraan baris untuk hasil carian, seseorang boleh menggunakan pertanyaan berikut:

SELECT * FROM my_large_table WHERE condition
Salin selepas log masuk

Dan dapatkan semula kiraan baris menggunakan mysql_num_rows(), seperti yang dilihat dalam kod di bawah:

$condition = "fname='rinchik'";
$result = "SELECT * FROM my_large_table WHERE" . $condition;
$result_count = mysql_num_rows($result);
Salin selepas log masuk

Dengan menggunakan pendekatan ini, pelayan boleh memproses pertanyaan dengan lebih cekap dan memberikan respons yang lebih pantas untuk penomboran hasil carian dalam meja besar.

Atas ialah kandungan terperinci COUNT() vs. mysql_num_rows(): Mana yang Terbaik untuk Penomboran dalam Jadual Besar?. 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!