ホームページ  >  記事  >  データベース  >  MySQL における INSTR と LIKE: 文字列検索ではどちらがより効率的ですか?

MySQL における INSTR と LIKE: 文字列検索ではどちらがより効率的ですか?

DDD
DDDオリジナル
2024-11-20 02:29:01688ブラウズ

INSTR vs. LIKE in MySQL: Which is More Efficient for String Searching?

パフォーマンスの比較: INSTR と LIKE

タイプ 'varchar' の MySQL カラム内の文字列を検索する場合、' text'、'blob' など、どの方法がより効率的ですか: INSTR(columnname, 'mystring') > 0 または列名 LIKE '%mystring%'?

The Answer

FULLTEXT 検索は最高のパフォーマンスを提供します。ただし、INSTR と LIKE を比較すると、通常のインデックスなしの全テーブル スキャンではどちらのメソッドも同じように実行されます。

詳細な比較

作成者が実施したテストでは、INSTRと LIKE は同等のパフォーマンスを示しました。ただし、接尾辞ワイルドカードのみを指定した LIKE (例: 列名 LIKE 'search%') を使用してインデックス付き列の接頭辞検索を実行すると、INSTR よりも大幅にパフォーマンスが向上します。

Implementation

INSTR と LIKE はどちらも列を左から右にスキャンし、検索文字列と保存されたデータを比較します。 INSTR は完全一致を検索しますが、LIKE では部分一致にワイルドカード文字 (% および _) を使用できます。

推奨事項

接頭辞一致が必要ないインデックス付き列の場合、 INSTR と LIKE はどちらも同様のパフォーマンスを備えた実行可能なオプションです。ただし、インデックスのないテーブルを扱う場合、またはサフィックスのみを検索する場合は、結果を高速化するために、サフィックス ワイルドカードを使用した LIKE をお勧めします。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。