Rumah >pangkalan data >tutorial mysql >Pengoptimuman Kiraan Baris SQL: `SELECT SQL_CALC_FOUND_ROWS` lwn. `SELECT COUNT(*)` – Mana Yang Lebih Cepat?

Pengoptimuman Kiraan Baris SQL: `SELECT SQL_CALC_FOUND_ROWS` lwn. `SELECT COUNT(*)` – Mana Yang Lebih Cepat?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-22 02:33:17311semak imbas

SQL Row Count Optimization: `SELECT SQL_CALC_FOUND_ROWS` vs. `SELECT COUNT(*)` – Which is Faster?

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!

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