ホームページ >データベース >mysql チュートリアル >## MySQL における LIKE と LOCATE: パフォーマンスの点で優れているのはどちらの演算子ですか?
MySQL LIKE と LOCATE のパフォーマンスの比較
MySQL でデータを検索するとき、LIKE と LOCATE のどちらの演算子がより効率的であるか疑問に思うかもしれません。この記事では、これら 2 つの演算子のパフォーマンスの違いについて説明します。
一般的な使用シナリオでは、LIKE は LOCATE よりわずかに高速です。これは主に、LIKE が LOCATE のように 0 との追加の比較を実行しないという事実によるものです。
以下のベンチマーク結果で示されているように、LIKE は、多数の反復において一貫して LOCATE よりわずかに優れたパフォーマンスを示します。
mysql> SELECT BENCHMARK(100000000,LOCATE('foo','foobar')); +---------------------------------------------+ | BENCHMARK(100000000,LOCATE('foo','foobar')) | +---------------------------------------------+ | 0 | +---------------------------------------------+ 1 row in set (3.24 sec) mysql> SELECT BENCHMARK(100000000,LOCATE('foo','foobar') > 0); +-------------------------------------------------+ | BENCHMARK(100000000,LOCATE('foo','foobar') > 0) | +-------------------------------------------------+ | 0 | +-------------------------------------------------+ 1 row in set (4.63 sec) mysql> SELECT BENCHMARK(100000000,'foobar' LIKE '%foo%'); +--------------------------------------------+ | BENCHMARK(100000000,'foobar' LIKE '%foo%') | +--------------------------------------------+ | 0 | +--------------------------------------------+ 1 row in set (4.28 sec)
これらの結果は、特定のデータベースのバージョン、検索しているテーブルのサイズと内容によって異なる場合があることに注意することが重要です。ただし、一般に、ワイルドカード検索では LIKE の方が効率的な演算子であると考えられています。
以上が## MySQL における LIKE と LOCATE: パフォーマンスの点で優れているのはどちらの演算子ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。