背景: LIKE '%string%' を利用するクエリの最適化構文は、特に InnoDB 環境では難しい場合があります。これに対処するために、利用可能なオプションとその制限について詳しく見てみましょう。
基本的なインデックス作成の制限事項:
ALTER TABLE の例 ADD INDEX で示す標準インデックスの作成idxSearch (keywords); では、LIKE '%whatever%' のようなクエリのパフォーマンスの問題は解決されません。これは、InnoDB インデックスが文字列の先頭から末尾まで構築されるためです。その結果、文字列がフィールド内のどこにでも現れる可能性がある「フローティング」検索では、これらのインデックスを利用できません。
全文インデックスの紹介:
柔軟な文字列検索の場合、全文インデックスが機能します。これらは、検索語がインデックス付き列のどこにでも出現する可能性があるシナリオに合わせて調整されています。 InnoDB のバージョン 5.6.4 のフルテキスト インデックスのサポートにより、InnoDB テーブルでもその利点を活用できるようになりました。
実装:
フルテキスト インデックスを実装するには、次のクエリを実行します。 :
ALTER TABLE example ADD FULLTEXT INDEX (keywords)
全文インデックスの利点:
追加の考慮事項:
以上がフルテキスト インデックスは InnoDB の LIKE \'%string%\' クエリのパフォーマンスをどのように向上させることができますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。