Rumah >pangkalan data >tutorial mysql >## Bagaimana Saya Boleh Jadikan MySQL SUKA \'%string%\' Pertanyaan Cekap dalam InnoDB?

## Bagaimana Saya Boleh Jadikan MySQL SUKA \'%string%\' Pertanyaan Cekap dalam InnoDB?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-25 07:23:29795semak imbas

## How Can I Make MySQL LIKE '%string%' Queries Efficient in InnoDB?

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!

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