Mengoptimumkan Pemilihan Indeks untuk Pertanyaan LIKE
Prestasi pangkalan data boleh terjejas dengan ketara apabila klausa LIKE terlibat, kerana indeks konvensional tidak dapat menyokong carian kad bebas dengan cekap. Ini amat ketara dalam pertanyaan dengan berbilang klausa dan pengendali.
Dalam pertanyaan yang disediakan, anda mempunyai ungkapan kompleks dengan LIKE, OR, dan NOT IN. Untuk menentukan indeks terbaik, pertimbangkan perkara berikut:
Operator SUKA
Ekspresi SUKA hanya boleh menggunakan indeks jika corak carian ialah rentetan malar tanpa kad bebas utama. Dalam pertanyaan anda, perbandingan LIKE memenuhi syarat ini untuk lajur panduan_penggunaan.
Berbilang Klausa
Pertanyaan dengan berbilang klausa boleh mendapat manfaat daripada indeks komposit. Dalam kes anda, menggabungkan lajur nama dan panduan_penggunaan dalam indeks akan membolehkan carian yang cekap pada kedua-dua ungkapan SUKA.
Indeks Disyorkan
Berdasarkan pertimbangan di atas, yang ideal indeks untuk pertanyaan anda ialah:
CREATE INDEX idx_tags_LIKE ON tags (usage_guidance, name);
Indeks ini akan membolehkan pelaksanaan pertanyaan yang lebih pantas dengan menggunakan indeks untuk perbandingan LIKE pada panduan_penggunaan dan mengeksploitasi lajur nama untuk mengisih dan menapis.
Petua Pengoptimuman Tambahan
Untuk meningkatkan lagi prestasi, pertimbangkan perkara berikut:
Dengan melaksanakan ini cadangan, anda boleh mengoptimumkan pertanyaan LIKE anda dengan ketara dan meningkatkan prestasi keseluruhan sistem pangkalan data anda.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengoptimumkan Pemilihan Indeks untuk Pertanyaan SEPERTI Pangkalan Data dengan Berbilang Klausa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!