Rumah >pangkalan data >tutorial mysql >Mengapa Pertanyaan MySQL dengan Offset LIMIT Besar Sangat Lambat?
Kesan LIMIT Offset yang Lebih Tinggi pada Kelajuan Pertanyaan MySQL
Apabila menanyakan jadual MySQL yang besar dengan pengimbangan LIMIT yang semakin meningkat bersamaan dengan ORDER BY, pengguna mungkin mengalami kelembapan yang ketara dalam kelajuan pertanyaan. Ini amat ketara apabila jadual melebihi 16 juta rekod atau bersaiz kira-kira 2GB.
Sebagai contoh, pertanyaan berikut dengan offset kecil dilaksanakan dengan ketara lebih cepat daripada pertanyaan dengan ofset lebih besar:
SELECT * FROM large ORDER BY `id` LIMIT 0, 30
SELECT * FROM large ORDER BY `id` LIMIT 10000, 30
Walaupun kedua-dua pertanyaan hanya mendapatkan 30 baris, pertanyaan kedua mengambil masa yang lebih lama walaupun overhed boleh diabaikan ORDER BY.
Untuk mengoptimumkan senario ini, pertimbangkan untuk menggunakan pendekatan alternatif:
SELECT * FROM large WHERE `id` > lastId LIMIT 0, 30
Dengan mengekalkan offset sifar secara konsisten, pertanyaan akan konsisten berprestasi pada kelajuan optimum, walaupun semasa mengambil sejumlah besar data dalam lelaran.
Atas ialah kandungan terperinci Mengapa Pertanyaan MySQL dengan Offset LIMIT Besar Sangat Lambat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!