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
396 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!

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