物理設計・インデックス・障害回復 重要度:★★★出題: AM2・PM1・PM2
クラスタ索引(Clustered Index)とクラスタ性
くらすたさくいんとくらすたせい / Clustered Index and Clustering Factor
索引キーの順序とデータページ内の実レコードの物理格納順序を一致させることで、範囲検索や複数行取得時のページI/O回数を劇的に削減する索引構造。
3行速習ポイント
- 1つのテーブルに対して物理的な並び順は1つしか持てないため、クラスタ索引は1テーブルにつき最大1個のみ定義可能
- クラスタ性が高い索引では、同じキー値や連続するキー範囲の行が同一データページに密集して格納される
- 非クラスタ索引では1行ごとに異なるデータページへランダムアクセスが発生し得るが、クラスタ索引では最小限のページ読込みで済む
図解
図クラスタ索引と非クラスタ索引のページI/O比較
クラスタ索引(キー順に物理格納)連続I/O・高速
同一・隣接キーの行が同じデータページに連続格納されるため、少数のページ読込みで範囲検索が完結
非クラスタ索引(物理順序と非一致)ランダムI/O
リーフから指す実データ行が別々のデータページに分散し、最大で行数分のランダムページ読込みが発生
概要と本質
午後I・午後IIの物理設計・性能見積り問題で最頻出の概念です。ディスク(またはバッファプール)からの読込み単位は「行」ではなく「ページ(ブロック)」であるため、対象行が少数のデータページにまとまって格納されているかどうか(クラスタ性の高低)がI/O回数に直結します。
重要ポイント・コア概念
- クラスタ索引(クラスタ性が高い場合):取得行数 N 行 ÷ 1ページ当たり格納行数 = 最小データページアクセス数
- 非クラスタ索引(クラスタ性が低い最悪ケース):取得行数 N 行 × 1ページ = 最大 N データページアクセス(1行ごとに別ページを参照)
- B+木索引のルート→中間→リーフページの探索ページ数に、データページアクセス数を合算して総アクセスページ数を見積もる
午後I・午後II記述試験での攻略ポイント
午後試験のページ数計算問題では、「1ページに何行入るか(行長とページサイズ・空き領域率から算出)」「索引がクラスタ索引か非クラスタ索引か」を必ず確認します。クラスタ索引なら連続格納、非クラスタ索引なら原則1行1ページアクセスとして計算するのが鉄則です。
午後記述で使える加点キーワード(クリックでコピー)
この用語が出題された過去問を解く(1分演習)
即時アウトプットで定着データベーススペシャリスト 過去問演習で実践力を鍛える