Rumah >pangkalan data >tutorial mysql >`SQL_CALC_FOUND_ROWS lwn. COUNT(*): Kaedah Manakah yang Lebih Cekap untuk Penomboran?`

`SQL_CALC_FOUND_ROWS lwn. COUNT(*): Kaedah Manakah yang Lebih Cekap untuk Penomboran?`

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-14 07:30:11130semak imbas

`SQL_CALC_FOUND_ROWS vs. COUNT(*): Which Method is More Efficient for Pagination?`

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!

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