複数のパターンに効率的に一致するように MySQL クエリを最適化します
次のクエリは、LIKE 演算子と組み合わせた複数の OR 条件を使用して、fiberbox
列の値が特定のパターンに一致する行を fiberBox
テーブルから取得するように設計されています。ただし、ユーザーは、MySQL でネイティブにサポートされていない LIKE IN()
構文の探索に興味を示しています。
目的の機能を実現するには、LIKE IN()
の代わりに正規表現 (REGEXP) を使用することを検討してください。 REGEXP を使用すると、列の値を複数のパターンに対して同時に照合できるため、場合によってはより効率的な代替手段が提供されます。
同じタスクを実現する最適化された REGEXP クエリを次に示します。
<code class="language-sql">SELECT * FROM fiberbox WHERE field REGEXP '1740|1938|1940';</code>
このクエリでは、REGEXP 演算子を使用して、field
列の値をパイプ記号 (|) で区切られた 3 つのパターンと照合します。このアプローチは、特に多数のパターンを扱う場合、LIKE で複数の OR 条件を使用するよりも効率的です。
ただし、特定のデータセットと使用シナリオに最適なソリューションを決定するには、両方のアプローチのベンチマークを行うことをお勧めします。
以上が複数のパターンに一致する MySQL クエリを効率的に最適化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。