キーワード列と InnoDB ストレージ エンジンを含むテーブルのシナリオで、LIKE を使用してクエリを最適化する'%string%' パターンは難しい場合があります。
最初は、キーワード列に単純なインデックスが追加されました。ただし、EXPLAIN クエリでは、クエリで '%string%' パターンを使用する場合、テーブル全体をスキャンする必要があることが判明しました。このインデックスは、LIKE 'string%' クエリに対してのみ有益であることがわかりました。
InnoDB テーブルの場合、検索語が浮動小数点の任意の場所にあるクエリにはフルテキスト インデックスが推奨されます。文字列。ただし、以前は、InnoDB はフルテキスト インデックスをサポートしていないと考えられていました。
最近のリリース (5.6.4 以降) では、InnoDB はフルテキスト インデックスをサポートするようになりました。これは、最適化された LIKE '%string%' クエリについては、InnoDB バージョン 5.6.4 以降へのアップグレードが推奨されることを意味します。フルテキスト インデックスは、フローティング検索用語用に特別に設計されています。
フルテキスト インデックスを使用すると、キーワード列内で「フローティング」検索用語を効率的に見つけることができます。これにより、テーブル全体をスキャンする必要がなくなり、InnoDB テーブルの LIKE '%string%' クエリのクエリ パフォーマンスが大幅に向上します。
以上が問題と解決策を強調する、魅力的な質問ベースのタイトルのオプションをいくつか紹介します。 * **InnoDB で MySQL LIKE \'%string%\' クエリを最適化する方法** (直接的かつ簡単) * **での詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。