ホームページ > データベース > mysql チュートリアル > MATCH AGAINST または LIKE: MySQL での複数列のキーワード検索にはどちらが適していますか?

MATCH AGAINST または LIKE: MySQL での複数列のキーワード検索にはどちらが適していますか?

Patricia Arquette
リリース: 2024-12-28 01:55:09
オリジナル
804 人が閲覧しました

MATCH AGAINST or LIKE: Which is Better for Multi-Column Keyword Searches in MySQL?

データベース検索で MATCH AGAINST と LIKE の選択

データベース クエリでは、検索に最適なクエリを選択するというジレンマに直面します。複数の列の特定のキーワードに基づいた行。この質問では、2 つのアプローチを比較します。

MATCH AGAINST

このクエリは、全文インデックスを使用して、キーワード「foo」と「bar」を含むドキュメントを検索します。指定された列「foo_desc」および「bar_desc」。 MySQL バージョン 5.6 以降では、InnoDB テーブルで MATCH AGAINST がサポートされています。

gt;LIKE

このクエリは 2 つの列の値を連結し、LIKE を使用して実行します。結果内の「foo」と「bar」の部分文字列検索string.

パフォーマンスに関する考慮事項

MATCH AGAINST は、フルテキスト インデックスを活用してキーワードを効率的に検索することで、MyISAM テーブル上で優れたパフォーマンスを発揮します。対照的に、LIKE はテーブル全体のスキャンを実行し、各行でキーワードを検索します。これは、大規模なデータセットでは時間がかかる可能性があります。

LIKE の制限事項

LIKE は、(関数の結果ではなく) 列に直接適用された場合、検索パターンが列の先頭と一致する場合、および列にインデックスが付けられている場合にのみ有効です。それ以外の場合、デフォルトでテーブル全体のスキャンが行われるため、大規模なデータセットでは実用的ではなくなります。

MATCH AGAINST の欠点

MySQL における MATCH AGAINST の制限の 1 つは、単語全体のみに一致します。したがって、「bla」を検索すると、「blah」を含む列は一致しませんが、「bla*」を検索すると一致します。

推奨アプローチ

パフォーマンスの考慮事項と LIKE の制限に基づいて、大規模なデータセットで複数の列のキーワードを検索する場合は、MATCH AGAINST が推奨される選択肢です。全文インデックス作成の効率を活用して、迅速かつ正確な結果を提供します。

以上がMATCH AGAINST または LIKE: MySQL での複数列のキーワード検索にはどちらが適していますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート