ホームページ >データベース >mysql チュートリアル >in と or in mysql の違いは何ですか

in と or in mysql の違いは何ですか

WBOY
WBOYオリジナル
2021-12-23 11:15:016178ブラウズ

違い: 1. 親クエリ テーブルと子セルフ クエリ テーブルを通じてハッシュ接続クエリを実行するか、親クエリ テーブルでループを実行してから子クエリ テーブルにクエリを実行します。はインデックスまたは主キーではありません。 この場合、or の背後にあるデータの量が増加すると、or の実行効率は大幅に低下しますが、in の実行効率は大幅には低下しません。

in と or in mysql の違いは何ですか

このチュートリアルの動作環境: Windows10 システム、mysql8.0.22 バージョン、Dell G3 コンピューター。

#in と or in mysql の違いは何ですか

数千万レベルのデータでデータ比較を行います

In SQL ステートメント in と or の違いは、操作の違い、適合性の違い、実行効率の違いです。

1. さまざまな操作

1. in: in は、親クエリ テーブルと子セルフクエリ テーブル間のハッシュ接続です。

2. or: or は、親クエリ テーブルでループを実行し、ループがループするたびに子クエリ テーブルをクエリします。

2. さまざまな 5261

1 に適しています。 in: in は、子クエリ テーブルに親クエリ テーブルよりも多くのデータがある状況に適しています。

2. or: or は、子クエリ テーブルのデータが親クエリ テーブルよりも少ない状況に適しています。

3. 実行効率の違い

1. in: インデックスがない場合、in の背後にあるデータ量が増加しても、in の実行効率はあまり低下しません。

2. または: インデックスがない場合、 or の背後にあるデータの量が増加するにつれて、 or の実行効率が大幅に低下します。

in と or が配置されている列にインデックスまたは主キーがある場合、or と in に違いはなく、実行計画と実行時間はほぼ同じになります。


in および or が配置されている列にインデックスがない場合、パフォーマンスの違いは大きくなります。インデックスがない場合、 or の背後にあるデータの量が増加しても、 in の効率はそれほど低下しませんが、レコード数が増加するにつれて or のパフォーマンスは大幅に低下します

したがって、 in と or の効率を考慮するには、列にインデックスが付けられているかどうか、または主キーであるかどうかという別の条件を追加する必要があります。インデックスや主キーがある場合はパフォーマンスに差はありませんが、インデックスがない場合はパフォーマンスに少なからず差が出ます。

推奨学習:

mysql ビデオ チュートリアル

以上がin と or in mysql の違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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