MySQL LIKE と LOCATE: どちらのパフォーマンスが優れていますか?
データベース クエリでは、多くの場合、テーブル列内の特定の用語の検索が必要になります。この目的で使用される 2 つの一般的な演算子は、LIKE と LOCATE です。この記事の目的は、このような検索を実行するときにどの演算子がより良いパフォーマンスを提供するかを判断することです。
LIKE vs LOCATE
LIKE 演算子は、任意の数の検索に一致するためにワイルドカード文字 (%) を使用します。文字。対照的に、LOCATE 演算子は文字列を受け取り、列内で最初に出現した位置を返します。
パフォーマンスの比較
ベンチマークによると、LIKE 演算子は一般的にパフォーマンスが高いことが示されています。 LOCATE よりもわずかに高速です。これは主に、LIKE では一致が有効かどうかを判断するために追加の比較 (「> 0」) を必要としないためです。
ベンチマーク結果
ベンチマーク テストの使用1 億回の反復によるパフォーマンスの比較では、次の結果が得られました。
Operator | Time (seconds) |
---|---|
LOCATE (without comparison) | 3.24 |
LOCATE (with comparison) | 4.63 |
LIKE | 4.28 |
結論
LIKE と LOCATE のパフォーマンスの差はわずかですが、LIKE は部分文字列検索のより効率的な選択肢。この利点は、LOCATE で必要となる追加の比較を回避できることに由来します。ただし、これらのベンチマークは、特定のデータベースのバージョンとテーブルのサイズによって異なる場合があることに注意することが重要です。
以上が## MySQL における LIKE と LOCATE: 部分文字列検索ではどちらが速いですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。