Rumah > pangkalan data > tutorial mysql > SQL_CALC_FOUND_ROWS lwn. SELECT COUNT(*): Manakah Lebih Cepat untuk Penomboran?

SQL_CALC_FOUND_ROWS lwn. SELECT COUNT(*): Manakah Lebih Cepat untuk Penomboran?

DDD
Lepaskan: 2024-12-31 10:35:14
asal
868 orang telah melayarinya

SQL_CALC_FOUND_ROWS vs. SELECT COUNT(*): Which is Faster for Pagination?

Perbandingan Prestasi: SQL_CALC_FOUND_ROWS lwn. SELECT COUNT(*)

Apabila mencari jumlah rekod dalam pertanyaan semasa menggunakan penomboran, dua kaedah muncul: SQL_CALC_FOUND_ROWS dan SELECT COUNT(*). Menentukan pendekatan optimum bergantung pada pelbagai faktor.

Kaedah 1: SQL_CALC_FOUND_ROWS

Kaedah ini menggunakan SQL_CALC_FOUND_ROWS dalam pertanyaan SELECT awal dan seterusnya menggunakan FOUND_ROWS() untuk mendapatkan semula jumlah kiraan baris. Sintaksnya adalah seperti berikut:

SELECT SQL_CALC_FOUND_ROWS * FROM table WHERE id > 100 LIMIT 10;
SELECT FOUND_ROWS();
Salin selepas log masuk

Kaedah 2: SELECT COUNT(*)

Sebagai alternatif, pertanyaan berasingan mengira baris menggunakan SELECT COUNT(*), selepas melaksanakan pertanyaan asal. Sintaksnya ialah:

SELECT * FROM table WHERE id > 100 LIMIT 10;
SELECT COUNT(*) FROM table WHERE id > 100;
Salin selepas log masuk

Penilaian Prestasi

Prestasi setiap kaedah berbeza-beza berdasarkan faktor seperti ketersediaan indeks dan kerumitan pertanyaan. Satu analisis komprehensif oleh Blog Prestasi MySQL mencadangkan bahawa:

  • SQL_CALC_FOUND_ROWS secara amnya lebih perlahan daripada menjalankan dua pertanyaan, terutamanya jika indeks tidak dioptimumkan atau pertanyaan itu rumit.
  • Jurang prestasi melebar dengan peningkatan baris dikira.
  • Walau bagaimanapun, untuk pertanyaan dengan ungkapan atau subkueri yang kompleks, SQL_CALC_FOUND_ROWS mungkin mengatasi SELECT COUNT(*) disebabkan penggunaan indeks.

Akhirnya , pendekatan yang ideal bergantung pada konteks khusus dan keperluan aplikasi. Seperti yang dinyatakan dalam catatan Blog Prestasi, "Ia bergantung pada indeks anda dan faktor lain."

Atas ialah kandungan terperinci SQL_CALC_FOUND_ROWS lwn. SELECT COUNT(*): Manakah Lebih Cepat untuk Penomboran?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan