違い: 1. 親クエリ テーブルと子セルフ クエリ テーブルを通じてハッシュ接続クエリを実行するか、親クエリ テーブルでループを実行してから子クエリ テーブルにクエリを実行します。はインデックスまたは主キーではありません。 この場合、or の背後にあるデータの量が増加すると、or の実行効率は大幅に低下しますが、in の実行効率は大幅には低下しません。
このチュートリアルの動作環境: Windows10 システム、mysql8.0.22 バージョン、Dell G3 コンピューター。
#in と or in mysql の違いは何ですか
数千万レベルのデータでデータ比較を行いますIn SQL ステートメント in と or の違いは、操作の違い、適合性の違い、実行効率の違いです。 1. さまざまな操作1. in: in は、親クエリ テーブルと子セルフクエリ テーブル間のハッシュ接続です。 2. or: or は、親クエリ テーブルでループを実行し、ループがループするたびに子クエリ テーブルをクエリします。 2. さまざまな 52611 に適しています。 in: in は、子クエリ テーブルに親クエリ テーブルよりも多くのデータがある状況に適しています。 2. or: or は、子クエリ テーブルのデータが親クエリ テーブルよりも少ない状況に適しています。 3. 実行効率の違い1. in: インデックスがない場合、in の背後にあるデータ量が増加しても、in の実行効率はあまり低下しません。 2. または: インデックスがない場合、 or の背後にあるデータの量が増加するにつれて、 or の実行効率が大幅に低下します。 in と or が配置されている列にインデックスまたは主キーがある場合、or と in に違いはなく、実行計画と実行時間はほぼ同じになります。
in および or が配置されている列にインデックスがない場合、パフォーマンスの違いは大きくなります。インデックスがない場合、 or の背後にあるデータの量が増加しても、 in の効率はそれほど低下しませんが、レコード数が増加するにつれて or のパフォーマンスは大幅に低下します
したがって、 in と or の効率を考慮するには、列にインデックスが付けられているかどうか、または主キーであるかどうかという別の条件を追加する必要があります。インデックスや主キーがある場合はパフォーマンスに差はありませんが、インデックスがない場合はパフォーマンスに少なからず差が出ます。
以上がin と or in mysql の違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。