Mengoptimumkan Pertanyaan MySQL untuk LIKE '%string%' dalam InnoDB
Penerangan Masalah
Apabila menggunakan klausa LIKE '%string%' dalam pertanyaan pada jadual InnoDB, adalah diperhatikan bahawa indeks pada lajur 'kata kunci' menjadi tidak berkesan, mengakibatkan imbasan jadual penuh.
Penyelesaian
Indeks InnoDB dioptimumkan untuk perbandingan rentetan yang bermula pada permulaan lajur yang diindeks. Walau bagaimanapun, klausa LIKE '%string%' membenarkan istilah carian muncul di mana-mana dalam lajur. Jenis pertanyaan ini tidak boleh menggunakan indeks berasaskan permulaan kerana istilah carian tidak berlabuh pada permulaan rentetan.
Indeks Teks Penuh sebagai Penyelesaian Optimum
Untuk mengoptimumkan pertanyaan yang melibatkan istilah carian terapung dalam InnoDB, indeks teks penuh harus digunakan. Indeks teks penuh direka khusus untuk mengendalikan pertanyaan sedemikian, kerana ia membenarkan padanan rentetan yang fleksibel.
Menaik taraf kepada MySQL 5.6.4 atau Kemudian
Sokongan InnoDB untuk indeks teks penuh ialah diperkenalkan dalam MySQL 5.6.4. Jika versi MySQL anda di bawah 5.6.4, adalah disyorkan untuk menaik taraf untuk menggunakan ciri ini. Dengan menaik taraf kepada MySQL 5.6.4 atau lebih baru, anda akan dapat menggunakan indeks teks penuh untuk mengoptimumkan pertanyaan LIKE '%string%' dalam InnoDB.
Atas ialah kandungan terperinci ## Bagaimana Saya Boleh Jadikan MySQL SUKA \'%string%\' Pertanyaan Cekap dalam InnoDB?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!