Meningkatkan Prestasi MySQL dengan OFFSET Besar dalam Klausa LIMIT
Menghadapi kemerosotan prestasi semasa menggunakan offset yang ketara dalam klausa LIMIT pertanyaan MySQL SELECT ? Isu ini timbul apabila offset, yang dilambangkan dengan 'm,' melepasi ambang tertentu, seperti 1,000,000, mengakibatkan pelaksanaan pertanyaan yang lembap.
Walaupun penting untuk menggunakan klausa LIMIT untuk senario jadual tertentu, ada caranya untuk mengoptimumkan prestasi tanpa menggunakan alternatif seperti penapisan berdasarkan julat ID ('id > 1,000,000 had n').
Mengindeks Pengoptimuman Berasaskan Jadual
Pertimbangkan untuk mencipta jadual pengindeksan yang mewujudkan hubungan berjujukan dengan kunci utama jadual sasaran. Pendekatan pengindeksan ini boleh meningkatkan prestasi pertanyaan dengan ketara.
Buat Jadual Pengindeksan:
CREATE TABLE seq ( seq_no int not null auto_increment, id int not null, primary key(seq_no), unique(id) );
Isi Urutan:
TRUNCATE seq; INSERT INTO seq (id) SELECT id FROM mytable ORDER BY id;
Pertanyaan Dioptimumkan menggunakan Pengindeksan:
Untuk mengambil 1000 baris daripada offset 1,000,000:
Atas ialah kandungan terperinci Bagaimana untuk Mengoptimumkan Pertanyaan MySQL dengan OFFSET Besar dalam Klausa LIMIT?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!