Rumah > Artikel > pangkalan data > SELECT COUNT() vs mysql_num_rows(): Mana yang Lebih Baik untuk Mengira Jadual Besar?
Mengira Jadual Besar: SELECT COUNT() vs mysql_num_rows()
Apabila menavigasi jadual dengan berjuta-juta rekod, adalah penting untuk pertimbangkan implikasi prestasi mengira baris. Dua pilihan biasa ialah SELECT COUNT() dan mysql_num_rows(), masing-masing mempunyai kelebihan dan kelemahan tersendiri.
SELECT COUNT()
SELECT COUNT() direka khusus untuk mengira baris dan memperuntukkan memori hanya untuk menyimpan hasilnya. Ia beroperasi dengan cekap dengan menggunakan proses pelayan dalaman yang mengelak daripada mendapatkan semula data sebenar. Ini menjadikannya sesuai untuk situasi di mana hanya kiraan baris diperlukan.
mysql_num_rows()
mysql_num_rows(), sebaliknya, memproses keseluruhan set hasil. Ia memperuntukkan memori untuk semua rekod yang dikembalikan dan meletakkan pelayan dalam "mod pengambilan" yang melibatkan penguncian dan operasi intensif sumber lain. Pendekatan ini boleh menjadi lebih perlahan, terutamanya untuk set hasil yang besar.
Penomboran untuk Hasil Carian
Untuk penomboran berdasarkan hasil carian, menggunakan SELECT COUNT() biasanya lebih disukai. Dengan memasukkan syarat carian ke dalam pernyataan SELECT COUNT(), anda boleh mendapatkan kiraan baris tanpa memerlukan pertanyaan berasingan. Pendekatan ini mengurangkan bilangan pertanyaan dan meningkatkan prestasi keseluruhan.
Sebagai contoh, bukannya menggunakan dua pertanyaan berasingan seperti dalam contoh anda:
1. $condition = " fname='rinchik' "; 2. $result_count = "SELECT COUNT(id) FROM my_large_table WHERE" . $condition;
Anda boleh mengubah suai kod anda kepada:
$condition = " fname='rinchik' "; $result = "SELECT * FROM my_large_table WHERE" . $condition; $result_count = mysql_num_rows($result);
Kesimpulan
Walaupun mysql_num_rows() boleh menyediakan kiraan baris, menggunakan SELECT COUNT() ialah pendekatan yang lebih cekap untuk mengira jadual besar atau mendapatkan semula kiraan baris untuk hasil carian. Ia mengelakkan pengambilan data yang tidak diperlukan dan meningkatkan prestasi dengan ketara.
Atas ialah kandungan terperinci SELECT COUNT() vs mysql_num_rows(): Mana yang Lebih Baik untuk Mengira Jadual Besar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!