Rumah >pangkalan data >tutorial mysql >Pengoptimuman Kiraan Baris SQL: `SELECT SQL_CALC_FOUND_ROWS` lwn. `SELECT COUNT(*)` – Mana Yang Lebih Cepat?
Pengoptimuman Prestasi SQL: Membandingkan "SELECT SQL_CALC_FOUND_ROWS..." dan "SELECT COUNT(*)" untuk Pengiraan Baris
Dalam pangkalan data SQL pengoptimuman, menentukan jumlah bilangan rekod dalam jadual adalah penting untuk penomboran dan operasi lain. Dua kaedah biasa untuk tugasan ini ialah "SELECT SQL_CALC_FOUND_ROWS..." dan "SELECT COUNT(*)".
Kaedah 1: "SELECT SQL_CALC_FOUND_ROWS..."
Kaedah ini menggunakan pilihan "SQL_CALC_FOUND_ROWS" dalam pertanyaan SELECT awal untuk menyediakan pelayan untuk mengembalikan jumlah baris kira. Selepas pertanyaan awal, anda boleh mendapatkan semula jumlah kiraan menggunakan "SELECT FOUND_ROWS()".
Kaedah 2: "SELECT COUNT(*)"
Sebagai alternatif, anda boleh menjalankan pertanyaan berasingan menggunakan "SELECT COUNT(*)" untuk mengira terus jumlah baris dalam jadual.
Perbandingan Prestasi
Kaedah optimum untuk menentukan kiraan baris bergantung pada faktor tertentu. Menurut Blog Prestasi MySQL, kecekapan "SQL_CALC_FOUND_ROWS" berbeza-beza berdasarkan indeks dan tetapan konfigurasi lain.
Pemerhatian daripada Pakar
Peter Zaitsev, pengarang Blog Prestasi MySQL, mencadangkan bahawa "SQL_CALC_FOUND_ROWS" biasanya lebih perlahan daripada menjalankan dua pertanyaan berasingan untuk kebanyakan senario. Ramai pengulas pada catatan blog juga menunjukkan bahawa "SQL_CALC_FOUND_ROWS" boleh menjadi lebih perlahan, walaupun dengan faktor 10.
Kesimpulan
Sementara "SELECT SQL_CALC_FOUND_ROWS... " boleh memberi manfaat dalam situasi tertentu, biasanya disyorkan untuk menggunakan "SELECT COUNT(*)" untuk aplikasi kritikal prestasi yang meminimumkan masa pelaksanaan adalah penting. Walau bagaimanapun, anda dinasihatkan untuk menguji kedua-dua kaedah dengan data dan konfigurasi khusus anda untuk menentukan pendekatan optimum untuk kes penggunaan anda.
Atas ialah kandungan terperinci Pengoptimuman Kiraan Baris SQL: `SELECT SQL_CALC_FOUND_ROWS` lwn. `SELECT COUNT(*)` – Mana Yang Lebih Cepat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!