Rumah  >  Artikel  >  pangkalan data  >  SELECT COUNT() vs mysql_num_rows(): Mana yang Lebih Baik untuk Mengira Jadual Besar?

SELECT COUNT() vs mysql_num_rows(): Mana yang Lebih Baik untuk Mengira Jadual Besar?

DDD
DDDasal
2024-11-01 05:13:27805semak imbas

SELECT COUNT() vs mysql_num_rows(): Which is Better for Counting Large Tables?

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!

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