ホームページ > データベース > mysql チュートリアル > MySQL 文字列マッチング: INSTR と LIKE: どちらが効率的ですか?

MySQL 文字列マッチング: INSTR と LIKE: どちらが効率的ですか?

Susan Sarandon
リリース: 2024-12-04 20:17:15
オリジナル
888 人が閲覧しました

MySQL String Matching: INSTR vs. LIKE: Which is More Efficient?

MySQL 列文字列の一致: INSTR と LIKE

タイプ 'varchar'、'text の MySQL 列内の部分文字列を検索する場合'、または 'blob' を使用する場合、INSTR と LIKE という 2 つの一般的な検索方法が使用されます。しかし、どちらのアプローチがより効率的でしょうか?

質問の中心は、INSTR 関数を使用して指定された文字列の位置を特定する INSTR と、ワイルドカードを使用したパターン マッチングを利用する LIKE のどちらが最適であるかという点です。

パフォーマンスの比較

ベンチマークにより、フルテーブル スキャンでは、INSTR と LIKE はどちらも同様のパフォーマンスを示します:

INSTR( columnname, 'mystring' ) > 0: 5.54 sec
columnname LIKE '%mystring%': 5.54 sec
ログイン後にコピー

ただし、インデックス付き列でプレフィックス検索を実行する場合、重要な違いが現れます:

Name LIKE 'search%': 3.88 sec
ログイン後にコピー

このシナリオでは、LIKE接尾辞のワイルドカードのみを使用すると、INSTR よりも大幅にパフォーマンスが向上します。

代替: FULLTEXT Search

INSTR と LIKE は両方とも文字列の一致に役立ちますが、部分文字列の検索では FULLTEXT 検索の効率が優れていることに注意することが重要です。インデックス付きの単語リストを活用し、特に大きな列を検索する場合に超高速のパフォーマンスを実現します。速度が最優先される場合は、FULLTEXT の採用を検討してください。

以上がMySQL 文字列マッチング: INSTR と LIKE: どちらが効率的ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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