SQL Scale Lab
第二部 パフォーマンス編 · 第 7 章 · 約 25 分

JOIN — 障害 5: 商品別の売上画面が終わらない

Nested loop と Hash join の動作原理。loops が意味するもの、結合キー双方のインデックスの重要性、結合順序の違いがもたらす劇的な影響を検証します。

無料プレビュー

前提: 第4章で作成したインデックスを使い、order_items.product_id に新しいインデックスを作りながら検証します。

この章で答える問い
  1. 複数のテーブルをどちらから先に、どう結合しているのか?
  2. 実行計画の loops は JOIN のどこに現れるのか?
  3. 読む順番が逆なだけで、なぜ1,000倍も遅くなるのか?

準備: 商品を探すインデックスがない状態から始める

まずは order_items.product_id にインデックスがない状態を作り、遅い結合計画が選ばれる条件を再現します。

無料プレビューはここまで

続きでは、JOIN の読む順番だけで1,000倍遅くなる理由を、rows × loops から読み解きます。

ここからの学習は有料プラン(買い切り)となります

¥500 税込・買い切り(追加費用なし)

ご購入いただくと、第二部 2〜10 章(実行計画、選択性、複合インデックス、InnoDB の内部構造、ソートとページング、JOIN、書き込みコストと DDL、ロック、同時実行)の全編、すべてのラボの計測データ再生機能、および章末の理解度確認クイズをご利用いただけます。

※ ご購入時と同じ Google アカウントでログインすることで、すぐに続きを閲覧いただけます。デジタルコンテンツの性質上、購入後の返金は原則としてお受けできません。まずは無料の 13 章と各有料章のプレビューをお試しいただき、ご納得の上でご購入ください。