Rumah >pangkalan data >tutorial mysql >Kaedah Manakah yang Lebih Cepat untuk Mengira Baris Pangkalan Data: PDO::rowCount atau COUNT(*) dan Mengapa?
PDO::rowCount vs. COUNT(*) Prestasi
Apabila mengira baris dalam pertanyaan pangkalan data, pilihan antara menggunakan PDO:: rowCount dan COUNT(*) boleh memberi kesan ketara kepada prestasi.
PDO::rowCount
PDO::rowCount mengembalikan bilangan baris yang terjejas oleh pernyataan SQL terakhir. Walau bagaimanapun, untuk pernyataan SELECT, sesetengah pangkalan data mungkin mengembalikan bilangan baris yang dikembalikan. Tingkah laku ini tidak dijamin dan tidak boleh dipercayai.
Secara dalaman, PDO::rowCount memproses keseluruhan set hasil, memperuntukkan memori untuk setiap baris. Ini boleh menjadi operasi intensif memori, terutamanya untuk set hasil yang besar.
COUNT(*)
COUNT() mengira bilangan baris dalam pertanyaan tanpa mendapatkan semula baris sebenar. MySQL mengoptimumkan COUNT() untuk mencari kiraan tanpa mengambil setiap baris.
Perbandingan Prestasi
Atas sebab prestasi, COUNT() biasanya lebih pantas daripada PDO::rowCount untuk mengira baris. Ini kerana COUNT() mengambil kesempatan daripada pengoptimuman MySQL dan mengelakkan operasi intensif memori memproses keseluruhan set hasil.
Mengindeks
Menggunakan indeks pada lajur id boleh meningkatkan prestasi kedua-dua kaedah dengan ketara. Indeks membolehkan MySQL mencari dengan pantas baris yang sepadan dengan nilai id tanpa perlu mengimbas keseluruhan jadual.
Amalan Terbaik
Secara amnya, disyorkan untuk menggunakan COUNT( *) bukannya PDO::rowCount untuk mengira baris dalam pertanyaan, terutamanya apabila set hasil adalah besar. Selain itu, menggunakan indeks pada lajur id boleh meningkatkan lagi prestasi.
Atas ialah kandungan terperinci Kaedah Manakah yang Lebih Cepat untuk Mengira Baris Pangkalan Data: PDO::rowCount atau COUNT(*) dan Mengapa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!