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

ソートとページング — 障害 4: 注文一覧の 1,000 ページ目が開かない

Filesort が発生する条件とメモリ溢れ、OFFSET による大量スキップの線形コスト、そして高速なキーセットページング(シーク法)への書き換えを学びます。

無料プレビュー

前提: 第4章で作成した idx_customer と idx_customer_ordered_price が存在します。

この章で答える問い
  1. ORDER BY が一瞬で終わるときと遅くなるときの違いは何か?
  2. OFFSET はデータベース内部で何をしているのか?
  3. 深いページでも一定速度になるキーセットページングとは何か?

Sort ノードが発生する計画と、発生しない計画

まずは同じ結果を返すクエリで使うインデックスだけを変え、実行計画に Sort が現れる条件を比べます。

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

続きでは、1ページ目は一瞬なのに1,000ページ目が止まる理由を、Sort と OFFSET から特定します。

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

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

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

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