Rumah >pangkalan data >tutorial mysql >Mengapa Pertanyaan MySQL Terindeks Saya Masih Lambat?

Mengapa Pertanyaan MySQL Terindeks Saya Masih Lambat?

Linda Hamilton
Linda Hamiltonasal
2024-12-13 03:51:09277semak imbas

Why is My Indexed MySQL Query Still Slow?

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!

Kenyataan:
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