ホームページ > データベース > mysql チュートリアル > SQL `LIKE` と `=`: どちらが他方よりも速いのはいつですか?

SQL `LIKE` と `=`: どちらが他方よりも速いのはいつですか?

Mary-Kate Olsen
リリース: 2025-01-04 16:58:40
オリジナル
190 人が閲覧しました

SQL `LIKE` vs `=`: When Is One Faster Than the Other?

SQL 'like' と '=' のパフォーマンス: コンテキスト分析

次の場合に 'like' と '=' のどちらのパフォーマンスが優れているかという問題SQL ワイルドカードの使用については過去にも取り上げられていますが、「=」の方が高速であるというのが常識です。ただし、クエリの特定のコンテキストを考慮することが重要です。

列に限られた数の固定のハードコードされた varchar 識別子が含まれており、そのタスクの 1 つに一致するすべての行を選択するというシナリオでは、 「好き」のほうが有利だと思われるかもしれません。 「Like」は最初の数文字の一致をテストするだけで済みますが、「=」は文字列全体を比較する必要があります。

ただし、John Nelson の記事 (アーカイブ: https://web.archive.org/web/20150209022016/http://myitforum.com/cs2/blogs/jnelson/archive/2007/11/16/108354.aspx)、「いいね」によるインデックス使用のルール

  • フィルターがインデックス付きフィールドで '=' を使用する場合、 INDEX/CLUSTERED INDEX SEEK が使用される可能性があります。
  • ワイルドカードなしで「like」が使用される場合、インデックスの使用法は「=」の場合と同様です。
  • 「like」が使用される場合先頭にワイルドカードを指定すると、インデックスの全体または一部の範囲に対する INDEX SCAN を使用できます。
  • 「いいね」の場合最初に文字列を使用し、その後にワイルドカードを使用します。INDEX SEEK を使用して一致する行を検索し、完全に一致するかどうかがチェックされます。

したがって、'like' と '= のパフォーマンスは異なります。 ' は、特定のクエリ コンテキスト、ワイルドカードの場所、インデックスの存在によって異なります。ハードコードされた識別子の数が限られている場合、完全な文字列比較では、「like」の方が「=」よりも実際に高速に実行される可能性があります。ただし、特定のユースケースを評価し、インデックスの最適化を検討して、最適なアプローチを決定することが重要です。

以上がSQL `LIKE` と `=`: どちらが他方よりも速いのはいつですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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