[解決済み] SQL JoinsとSQL Subqueriesの比較(パフォーマンス)?
2022-08-10 10:14:35
質問
を持つかどうかを知りたいのですが。 に参加する クエリのようなものです。
Select E.Id,E.Name from Employee E join Dept D on E.DeptId=D.Id
と サブクエリ のようなものです。
Select E.Id,E.Name from Employee Where DeptId in (Select Id from Dept)
私が 性能 という2つのクエリのどちらが速いか、そして なぜ ?
また、どちらか一方を選ぶべきタイミングはありますか?
これはあまりにも些細なことで、以前に質問されたのであれば申し訳ありませんが、私はそれについて混乱しています。また、それはあなた方が私に提案することができれば素晴らしいことです。 ツール 私は2つのクエリのパフォーマンスを測定するために使用する必要があります。どうもありがとうございました。
どのように解決するのですか?
最初のクエリの方が速くなると思います。 私の経験では
IN
は非常に遅い演算子です。なぜなら SQL は通常、一連の
WHERE
句を "OR"で区切って評価するためです (
WHERE x=Y OR x=Z OR...
).
しかし、ALL THINGS SQLと同様に、あなたのマイル数は異なるかもしれません。 速度はインデックスに大きく依存します (両方の ID 列にインデックスがありますか? それは多くの助けになります...)。
どちらが速いか100%確実に判断する唯一の方法は、パフォーマンス トラッキング (IO Statistics は特に便利です) をオンにして、両方を実行することです。 実行の間にキャッシュをクリアすることを確認してください!
関連
-
[解決済み] SQL ServerでSELECTからUPDATEする方法とは?
-
[解決済み] SQLiteのINSERT/per-secondのパフォーマンスを向上させる
-
[解決済み] PHPでSQLインジェクションを防ぐにはどうしたらいいですか?
-
[解決済み] MySQLでコマンドラインを使用してSQLファイルをインポートするにはどうすればよいですか?
-
[解決済み] SQLテーブルで重複する値を検索する
-
[解決済み] SQL Server テーブルにカラムが存在するかどうかを確認する方法は?
-
[解決済み] Railsの:includeと:joinsの比較
-
[解決済み】SQL Serverで既存のテーブルにデフォルト値を持つカラムを追加する
-
[解決済み] SQL ServerでINNER JOINを使用して削除するにはどうすればよいですか?
-
[解決済み] Intel CPU の _mm_popcnt_u64 で、32 ビットのループカウンターを 64 ビットに置き換えると、パフォーマンスが著しく低下します。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
MySQL】1136 - 列数が1行目の値数と一致しない問題を解決
-
MySQL - ストアドプロシージャ (データ型、関数)
-
MHAの高可用性構成とフェイルオーバー
-
[解決済み] SQLのカラム名があいまいな場合のクエリエラー
-
[解決済み] SQL Server で複数行のテキストを 1 つのテキスト文字列に連結する方法
-
[解決済み] postgres: ユーザーをスーパーユーザーにアップグレードしますか?
-
[解決済み] SQLでランダムな行を要求する方法は?
-
[解決済み] T-SQL文の接頭辞Nの意味と使うべきタイミングは?
-
[解決済み] VARCHARとCHARの違いは何ですか?
-
[解決済み】ジョインとサブクエリの比較