Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengoptimumkan Pertanyaan MySQL dengan Offset LIMIT Besar?
Pertanyaan MySQL yang menggunakan klausa LIMIT dengan offset yang besar boleh menghadapi masalah prestasi yang ketara. Untuk menangani cabaran ini, pertimbangkan teknik pengoptimuman berikut:
Daripada mengambil baris secara langsung menggunakan klausa LIMIT, buat jadual pengindeksan yang memetakan kunci jujukan kepada nilai kunci utama dalam jadual sasaran. Ini membolehkan anda mendapatkan data dengan cekap menggunakan INNER JOIN dan klausa WHERE.
Langkah:
Buat pengindeksan jadual:
CREATE TABLE seq ( seq_no int NOT NULL AUTO_INCREMENT, id int NOT NULL, PRIMARY KEY(seq_no), UNIQUE(id) );
Isi jadual pengindeksan:
TRUNCATE seq; INSERT INTO seq (id) SELECT id FROM mytable ORDER BY id;
Dapatkan data daripada sasaran jadual:
SELECT mytable.* FROM mytable INNER JOIN seq USING(id) WHERE seq.seq_no BETWEEN 1000000 AND 1000999;
Dengan menggunakan pendekatan ini, anda meningkatkan prestasi pertanyaan dengan ketara LIMIT offset yang besar, membolehkan anda mendapatkan data dengan cekap.
Atas ialah kandungan terperinci Bagaimana untuk Mengoptimumkan Pertanyaan MySQL dengan Offset LIMIT Besar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!