複数の列にわたって特定のキーワードをデータベースで検索する場合、一般的に使用される 2 つのアプローチは MATCH AGAINST と LIKE です。ただし、この 2 つのどちらを選択するかは、パフォーマンスと必要な柔軟性によって決まります。
MATCH AGAINST はフルテキスト インデックスを利用し、大規模なデータセットの場合は大幅に高速になります。完全に一致する単語またはフレーズを検索し、特定のキーワード全体が存在する必要があります。たとえば、テキストに「xxfoo」が含まれている場合、MATCH AGAINST を使用した「foo」と「bar」のクエリは結果を返しません。
対照的に、LIKE では部分一致とワイルドカードの使用が許可されます。テーブル全体のスキャンを実行し、指定された列を連結してキーワードと比較します。このアプローチは効率性は劣りますが、より広範なマッチング機能が可能になります。
したがって、厳密で高速な検索が必要な場合は、MATCH AGAINST が推奨されるソリューションです。ただし、部分一致やキーワード選択の柔軟性が重要な場合は、LIKE が引き続き有効なオプションです。
Update:
MySQL 5.6 以降では、全文インデックス作成のサポートが拡張されています。 InnoDB テーブルへの変換により、MATCH AGAINST はパフォーマンス重視のシナリオにとってさらに魅力的な選択肢となります。
以上がMATCH AGAINST または LIKE: どちらの SQL 検索方法がより優れたパフォーマンスと柔軟性を提供しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。