MySQL における INSTR と LIKE: どちらの文字列マッチング方法が速いですか?

Mary-Kate Olsen
リリース: 2024-11-20 03:12:02
オリジナル
968 人が閲覧しました

INSTR vs. LIKE in MySQL: Which String Matching Method Is Faster?

パフォーマンス分析: MySQL での INSTR 文字列と LIKE 文字列の一致

可変文字長の MySQL カラム内の文字列の存在をテストする場合、効率とスピードを実現する最適な方法。一般的なアプローチは次の 2 つです:

1. INSTR(列名, 'mystring' ) > 0
2.列名 LIKE '%mystring%'

パフォーマンス評価

速度の点で、テストでは驚くべき結果が明らかになりました。部分文字列の存在をチェックするとき、INSTR と LIKE はどちらも同じように実行されます。例:

INSTR(Name,'search') > 0
LIKE '%search%'
ログイン後にコピー

どちらのクエリもテーブル全体をスキャンし、完了までに約 5.54 秒かかりました。ただし、インデックス付き列でプレフィックス検索を実行する場合、サフィックス ワイルドカードのみを使用した LIKE 演算子は INSTR よりも大幅にパフォーマンスが優れています。

LIKE 'search%'
ログイン後にコピー

この最適化されたプレフィックス検索にかかった時間はわずか 3.88 秒です。

INSTR を超えています。と LIKE

INSTR と LIKE に加えて、MySQL は改良された FULLTEXT 検索もサポートしています。 パフォーマンス。ただし、これらの検索は、テーブル列に FULLTEXT でインデックスが付けられており、検索している文字列が列の先頭近くにある場合に最も効率的です。

考慮事項

実際には、次のいずれかを選択します。 INSTR と LIKE は、特定の使用例によって異なります。

  • フルテーブル スキャンの場合、INSTR と LIKE は両方とも実行されます。同様に。
  • インデックス付き列のプレフィックス検索の場合、サフィックス ワイルドカードを使用した LIKE の方が高速です。
  • より複雑または洗練された検索要件の場合は、FULLTEXT 検索を考慮する必要があります。

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

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