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

Penomboran SQL: `SELECT SQL_CALC_FOUND_ROWS` lwn. `SELECT COUNT(*)` - Manakah Lebih Cepat?

Patricia Arquette
Lepaskan: 2024-12-12 17:28:11
asal
485 orang telah melayarinya

SQL Pagination: `SELECT SQL_CALC_FOUND_ROWS` vs. `SELECT COUNT(*)` - Which is Faster?

PILIH SQL_CALC_FOUND_ROWS lwn. PILIH COUNT(*) untuk Mengira Baris

Apabila penomboran data dengan SQL, dua kaedah wujud untuk menentukan jumlah rekod kiraan: SQL_CALC_FOUND_ROWS dan SELECT COUNT(*). Pendekatan yang manakah berprestasi lebih pantas?

Kaedah 1: SQL_CALC_FOUND_ROWS

Kaedah ini menambah pilihan SQL_CALC_FOUND_ROWS pada pernyataan SELECT awal. Selepas melaksanakan pernyataan ini, anda boleh mendapatkan semula jumlah kiraan baris dengan menjalankan SELECT FOUND_ROWS().

Kaedah 2: SELECT COUNT(*)

Daripada menggunakan SQL_CALC_FOUND_ROWS, kaedah ini melaksanakan pertanyaan asal tanpa pengubahsuaian. Jumlah kiraan baris kemudiannya diperoleh dengan menjalankan pertanyaan berasingan: SELECT COUNT(*) FROM table.

Perbandingan Prestasi

Pilihan optimum bergantung pada faktor tertentu seperti indeks dan konfigurasi pangkalan data. Menurut Blog Prestasi MySQL, SQL_CALC_FOUND_ROWS boleh mempamerkan prestasi yang berbeza-beza, antara yang setara dengan yang lebih perlahan (sehingga 10x lebih perlahan) daripada menjalankan pertanyaan berasingan.

Cadangan

Banyak pengguna melaporkan bahawa Kaedah 2 (menjalankan dua pertanyaan) secara amnya menghasilkan prestasi yang lebih baik. Walau bagaimanapun, adalah dinasihatkan untuk menanda aras kedua-dua kaedah dengan set data yang mewakili untuk menentukan pendekatan optimum untuk persekitaran tertentu.

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

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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan