Prestasi SQL: PILIH SQL_CALC_FOUND_ROWS lwn. SELECT COUNT(*)
Pertimbangkan senario di mana anda perlu mengehadkan bilangan baris yang dikembalikan oleh pertanyaan SQL untuk tujuan halaman. Untuk menentukan jumlah bilangan rekod, terdapat dua kaedah utama:
Kaedah 1: SQL_CALC_FOUND_ROWS
SELECT SQL_CALC_FOUND_ROWS * FROM table WHERE id > 100 LIMIT 10; SELECT FOUND_ROWS();
Kaedah 2: PILIH COUNT(*)
SELECT * FROM table WHERE id > 100 LIMIT 10; SELECT COUNT(*) FROM table WHERE id > 100;
Timbul persoalan: kaedah manakah yang lebih cekap?
Kaedah Terbaik: Bergantung
Menurut Blog Prestasi MySQL, tiada jawapan yang pasti. Peter Zaitsev, pengarang blog, mencadangkan bahawa kaedah optimum bergantung pada konfigurasi indeks dan faktor lain.
Konsensus Umum
Walau bagaimanapun, banyak komen sebagai tindak balas kepada catatan blog nampaknya menunjukkan bahawa SQL_CALC_FOUND_ROWS biasanya lebih perlahan daripada menjalankan dua pertanyaan. Penalti prestasi yang dilaporkan boleh menjadi ketara, berpotensi sehingga 10x lebih perlahan.
Atas ialah kandungan terperinci `SQL_CALC_FOUND_ROWS lwn. COUNT(*): Kaedah Manakah yang Lebih Cekap untuk Penomboran?`. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!