Rumah >pangkalan data >tutorial mysql >Mengapa Pertanyaan MySQL Saya pada Meja Besar Sangat Lambat, dan Bagaimana Saya Boleh Mengoptimumkannya?
Pengoptimuman Pertanyaan MySQL untuk Jadual Besar dengan Masa Pelaksanaan Lambat
Pertanyaan MySQL anda mengambil masa lebih seminit untuk dilaksanakan kerana ia tidak mempunyai indeks yang cekap untuk mengoptimumkan perolehan semula data. Saiz jadual yang besar, terutamanya lebih 1 juta rekod, memburukkan lagi masalah.
Mengindeks jadual pada lajur id adalah penting untuk mempercepatkan pertanyaan yang melibatkan pengisihan mengikut id. Walau bagaimanapun, berdasarkan maklumat yang diberikan, nampaknya pengindeksan sahaja tidak mencukupi.
Berikut ialah beberapa cadangan untuk meningkatkan prestasi pertanyaan:
Gunakan Pertanyaan Julat dengan Klausa WHERE
Daripada menggunakan LIMIT untuk mendapatkan julat rekod tertentu, pertimbangkan untuk menggunakan klausa WHERE dengan pengendali hubungan. Sebagai contoh, pertanyaan berikut menggunakan pertanyaan julat untuk memilih rekod dengan nilai id yang lebih besar daripada atau sama dengan 499501 dan mengehadkan hasil kepada 500 baris:
select * from `ratings` where id >= 499501 limit 500;
Pertanyaan ini harus berprestasi lebih pantas kerana ia memanfaatkan indeks yang diindeks. lajur id untuk mengesan rekod yang dikehendaki dengan cekap.
Jelaskan Pelan Pertanyaan
Untuk menyelesaikan masalah selanjutnya, laksanakan pertanyaan EXPLAIN untuk mendapatkan cerapan tentang pelan pelaksanaan pertanyaan. Ini akan memberikan butiran tentang jenis pertanyaan, indeks yang digunakan dan anggaran bilangan baris untuk diimbas.
explain select * from `ratings` where id >= 499501 limit 500;
Singkirkan Kebuntuan
Kebuntuan berlaku apabila dua atau lebih transaksi serentak menunggu antara satu sama lain untuk melepaskan kunci, dengan berkesan menghalang sama ada daripada meneruskan. Walaupun maklumat yang diberikan tidak mencadangkan kebuntuan sebagai punca yang mungkin, ia patut dipertimbangkan.
Atas ialah kandungan terperinci Mengapa Pertanyaan MySQL Saya pada Meja Besar Sangat Lambat, dan Bagaimana Saya Boleh Mengoptimumkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!