Rumah >pangkalan data >tutorial mysql >Penomboran SQL: `SELECT SQL_CALC_FOUND_ROWS` lwn. `SELECT COUNT(*)` - Manakah Lebih Cepat?
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!