Menyelesaikan Masalah Pertanyaan MySQL Lambat: Pengindeksan untuk Prestasi
Apabila bekerja dengan jadual MySQL yang besar, adalah penting untuk mengoptimumkan pertanyaan untuk mendapatkan semula data yang cekap. Menambah indeks boleh meningkatkan prestasi pertanyaan dengan ketara dengan menyediakan akses pantas kepada titik data tertentu berdasarkan nilai lajur.
Dalam senario yang diberikan, pertanyaan yang melibatkan medan product_id berjalan perlahan walaupun mempunyai indeks. Dengan memeriksa hasil EXPLAIN, ternyata terdapat ketidakpadanan dalam jenis data antara medan diindeks dan kriteria carian.
Penyelesaian 1: Sahkan Keserasian Jenis Data
Pastikan bahawa jenis data indeks sepadan dengan jenis data kriteria carian. Dalam kes ini, medan id disimpan sebagai integer (INT), manakala medan product_id disimpan sebagai rentetan (VARCHAR). Jenis ketidakpadanan ini boleh membawa kepada isu prestasi.
Tindakan Disyorkan: Alih keluar petikan tunggal (') di sekitar product_id dalam pertanyaan. MySQL akan menghantar rentetan secara automatik kepada integer, membolehkan indeks digunakan dengan berkesan.
Penyelesaian 2: Tambah Indeks untuk ID Produk
Jika keserasian jenis data adalah sudah dipastikan, buat indeks khusus untuk medan product_id. Ini akan memberikan akses terus kepada baris berdasarkan nilai product_id, meningkatkan prestasi pertanyaan dengan ketara.
Sintaks:
ALTER TABLE `table` ADD INDEX `product_id_index` (`product_id`);
Dengan mengikuti langkah ini, anda boleh mengoptimumkan jadual MySQL pertanyaan untuk mendapatkan data yang lebih pantas, walaupun semasa mencari mengikut medan bukan indeks utama.
Atas ialah kandungan terperinci Mengapa Pertanyaan MySQL Terindeks Saya Masih Lambat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!