ホームページ >データベース >mysql チュートリアル >MATCH AGAINST または LIKE: 全文検索を最適化するクエリはどれですか?
複数の列に分散した特定のキーワードを含む行をデータベースで検索する場合、MATCH AGAINST と LIKE という 2 つの主要なオプションが表示されます。 。以下で説明するように、各アプローチには長所と短所があります。
MATCH AGAINST
適切な列の全文インデックスを利用する MATCH AGAINST は、以下を使用するテーブルで優れたパフォーマンスを誇ります。 MyISAM ストレージ エンジン。これにより、指定された列全体にわたる複数のキーワードに対する効率的なマッチングが可能になります。
LIKE
LIKE 検索は MATCH AGAINST よりも汎用性が高くなりますが、連結と検索を通じて各行を個別に評価する必要があります。比較。このアプローチでは、特に大規模なテーブルの場合、パフォーマンスに重大なペナルティが発生します。さらに、LIKE は、MATCH AGAINST の場合に「xxfoo」が一致しないなど、キーワードの部分一致で問題が発生する可能性があります。
優先選択
MyISAM テーブルの場合、複数のキーワードを含む全文検索には、MATCH AGAINST が推奨されます
InnoDB テーブル の場合、MySQL 5.6 以降では Match Against がサポートされており、実行可能なオプションとなっています。
サードパーティ検索の使用を検討してください。 Engine
パフォーマンスが重要な要素であり、基礎となるデータベース システムが満足のいくソリューションを提供しない場合、フルテキストのインデックス作成と検索のために特別に設計されたサードパーティの検索エンジンの統合を検討してください。
以上がMATCH AGAINST または LIKE: 全文検索を最適化するクエリはどれですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。