Rumah > pangkalan data > tutorial mysql > Mengapa Pertanyaan MySQL dengan Offset LIMIT Besar Sangat Lambat?

Mengapa Pertanyaan MySQL dengan Offset LIMIT Besar Sangat Lambat?

Linda Hamilton
Lepaskan: 2024-12-13 01:17:09
asal
566 orang telah melayarinya

Why Are MySQL Queries with Large LIMIT Offsets So Slow?

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
Salin selepas log masuk
SELECT * FROM large ORDER BY `id` LIMIT 10000, 30
Salin selepas log masuk

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:

  1. Simpan ID terakhir bagi set baris yang diambil (mis., lastId = 530).
  2. Ubah suai pertanyaan untuk memasukkan syarat WHERE id > lastId.
SELECT * FROM large WHERE `id` > lastId LIMIT 0, 30
Salin selepas log masuk

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!

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