[解決済み】SQL JOINとINのパフォーマンスは?
2022-04-16 23:38:56
質問
JOINとINのどちらを使っても正しい結果が得られるケースがあるのですが...。 一般的にどちらの方がパフォーマンスが高いのでしょうか、またその理由は? また、どのデータベース・サーバーを使用しているかにどのくらい依存するのでしょうか? (参考までに、私はMSSQLを使用しています。)
どのように解決するのですか?
一般的には
IN
と
JOIN
は異なるクエリであり、異なる結果を得ることができます。
SELECT a.*
FROM a
JOIN b
ON a.col = b.col
は
SELECT a.*
FROM a
WHERE col IN
(
SELECT col
FROM b
)
でない限り
b.col
は一意である。
ただし、これは最初のクエリの同義語です。
SELECT a.*
FROM a
JOIN (
SELECT DISTINCT col
FROM b
)
ON b.col = a.col
もし結合カラムが
UNIQUE
とマークされている場合、これらのクエリは両方とも
SQL Server
.
そうでない場合は
IN
よりも高速です。
JOIN
で
DISTINCT
.
パフォーマンスの詳細は、私のブログのこちらの記事をご覧ください。
関連
-
[解決済み] SQLの結合形式 - 入れ子になった内側join
-
[解決済み] SQL ServerでSELECTからUPDATEする方法とは?
-
[解決済み] SQLiteのINSERT/per-secondのパフォーマンスを向上させる
-
[解決済み] SQL Server の DateTime データ型から日付だけを返す方法
-
[解決済み] SQL ServerにおけるLEFT JOINとLEFT OUTER JOINの比較
-
[解決済み] SQL ServerでJOINを使用してUPDATE文を実行するにはどうすればよいですか?
-
[解決済み] 最初の行への結合方法
-
[解決済み】「INNER JOIN」と「OUTER JOIN」の違いは何ですか?
-
[解決済み】SQL Serverで既存のテーブルにデフォルト値を持つカラムを追加する
-
[解決済み] 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 - ストアドプロシージャ (データ型、関数)
-
executeQuery()ソリューションでデータ操作文を発行できない。
-
[解決済み] データベースのインデックス作成はどのように行われるのですか?[クローズド]
-
[解決済み] SQLのIN句をパラメータ化する
-
[解決済み] INNER JOINよりもCROSS APPLYを使用すべきなのはどのような場合ですか?
-
[解決済み] SQL JOIN - WHERE句とON句の比較
-
[解決済み] SQLの複数列の順序付け
-
[解決済み] SQL Server の CASE ステートメントで OR がサポートされていない。
-
[解決済み] PostgreSQLで一重引用符で囲まれたテキストを挿入する
-
[解決済み] 文字列の一部をUPDATEおよびREPLACEする。