基礎インデックスの種類

クラスタ化インデックス

定義

クラスタ化インデックスとは、テーブルの実データがインデックスキー順に物理的に並んで格納されている方式で、テーブル1つにつき1つしか作れない。

「テーブルの並び方」そのものが索引

通常のインデックスは「別のデータ構造として、テーブルの行を指し示すポインタを持つ」ものですが、クラスタ化インデックスは違います。 テーブル本体を索引キーの順に物理配置してしまうのです。結果、範囲検索や順序スキャンでは連続領域の読み取り一発で済みます。

クラスタ化 vs 非クラスタ(範囲検索の比較)
範囲検索:id BETWEEN AND
ヒープ表(非クラスタ)
挿入順にバラバラ配置
行ID
id
name
(1,0)42Sato
(1,1)15Tanaka
(1,2)83Suzuki
(1,3)27Ito
(2,0)61Nakamura
(2,1)4Yamada
(2,2)99Kobayashi
(2,3)33Watanabe

該当行が飛び地なので、範囲検索でも各行にランダムアクセスが必要。

クラスタ化表
キー順に物理配置
行ID
id
name
(1,0)4Yamada
(1,1)15Tanaka
(1,2)27Ito
(1,3)33Watanabe
(2,0)42Sato
(2,1)61Nakamura
(2,2)83Suzuki
(2,3)99Kobayashi

該当行が連続領域に固まっているのでシーケンシャル読み取りで効率的。

左端は行ID (page, offset)で、ページ番号とページ内オフセットの組。 クラスタ化表はid順に物理配置されているので、範囲検索の該当行が同じページ内に固まる。

「ページの並び順」を意識すると理解が深まる

テーブルはページ単位でディスクに置かれるので、範囲検索の速さは「該当行がどのページに散らばっているか」で決まります。

  • 非クラスタ化: 該当行のページは飛び地。範囲検索でも 何ページも別々に読む ランダムI/Oが発生する。
  • クラスタ化: 該当行が連続ページに固まっている。先頭ページから順に読む シーケンシャルI/Oで済む(ランダムより数十倍速い)。

非クラスタ化インデックスとの違い

  • 非クラスタ化: インデックス側にキーと行ポインタを持つ。範囲検索でも該当行の物理位置は飛び飛び。
  • クラスタ化: テーブルの物理的な並びそのもの。範囲検索は連続ブロックのシーケンシャルアクセスで完結。

設計時のポイント

  • 「範囲でよく引くカラム」をクラスタキーにするとI/Oが劇的に減る
  • 主キーがランダム値(UUID など)の場合、挿入のたびに物理的な再配置が発生してコストが増大するので注意
  • 1つしか作れないので、「どの検索を最も速くしたいか」を吟味する

よくある疑問

Q.クラスタ化インデックスはテーブルにいくつ作れますか?
A.実データそのものの並び順を決めるため、1テーブルにつき1つだけです。通常は主キーがそのままクラスタ化インデックスとして機能します。
Q.RDBMSごとに実装は違う?
A.はい。主キーを自動的にクラスタ化するタイプもあれば、ヒープ表を基本とし別途コマンドで一時的にキー順へ並べ替えるタイプもあります。原則としては「1テーブル1つ」の制約と「物理配置がキー順になる」性質は共通です。
Q.クラスタ化インデックスのデメリットは?
A.主キーが可変長・ランダムな値だと物理的な再配置コストが上がる(挿入が遅くなる)ことです。分散設計や連番主キーが好まれるのはこのため。

関連トピック

もっと学びたい方へ(おすすめ書籍)

おすすめ
達人に学ぶDB設計徹底指南書 第2版
ミック

テーブル設計と正規化、パフォーマンス考慮のインデックス設計まで実務レベルで学べる定番書。第2版ではクラウド対応も強化。

Amazon で見る →
[改訂3版]内部構造から学ぶPostgreSQL
勝俣智成 ほか

PostgreSQLの内部構造・ストレージ・インデックス機構を丁寧に解説。設計と運用計画の鉄則が学べる。

Amazon で見る →
理論から学ぶデータベース実践入門
奥野幹也

リレーショナルモデルの理論から、インデックス設計を含む実務で使えるSQLまで解説。

Amazon で見る →
おすすめ
楽々ERDレッスン (CodeZine BOOKS)
羽生章洋

ER 図をどう「使える設計」に落とすか、実務の判断まで踏み込んだ入門書。エンティティの切り出しから多対多の扱いまで具体例が豊富。

Amazon で見る →
おすすめ
スッキリわかるSQL入門 第4版 ドリル256問付き!
中山清喬/飯田理恵子

ドリル 256 問を実際に打ちながら進める SQL の入門書。付属のブラウザ環境で演習できるので、SELECT から結合・集約までを環境構築で止まらずに通せる。

Amazon で見る →
達人に学ぶSQL徹底指南書 第2版
ミック

SQLの本質的な使い方と、インデックスが効くクエリの書き方を学べる。ウィンドウ関数など現代SQLも網羅。

Amazon で見る →
SQLアンチパターン 第2版
Bill Karwin

実務でやりがちなSQL・DB設計のアンチパターンとその回避策を体系的に学べる。

Amazon で見る →
情報処理教科書 データベーススペシャリスト 2025年版
三好康之

IPAデータベーススペシャリスト試験の総合対策書。インデックス関連は本サイトと合わせて学ぶと理解が深まる。

Amazon で見る →
SQL実践入門 ── 高速でわかりやすいクエリの書き方
ミック

「なぜこの書き方が速いのか」を実行計画から説明する一冊。条件分岐・集約・結合・更新のそれぞれで、良い書き方と悪い書き方を対比しながら読める。

Amazon で見る →

本セクションはAmazonアソシエイトのリンクを含みます。

オンライン個別指導

もっと深くDBを学びたい方へ。

たいてっくが、SQL・データベース設計・パフォーマンスチューニング・IPAデータベーススペシャリスト対策まで、1対1で学習をサポートします。まずは無料相談から。

無料相談を予約する →
受講者の声 (DB・SQL コース)
menta レビュー原文を見る →
  • 教え方も上手で、お人柄も良いメンターです。DB周りの知識はもちろん、何より、しっかり教えてあげようという姿勢がとてもありがたかったです。データベース、SQLの学習を考えている方にはおススメです。
    H 様DB・SQL コース受講
  • 体系的に知識を教えてくださり、実際の業務でも大変役立っております。特に短い時間で効率よく知識の習得や、練習をできているのは期待以上でした。
    M 様DB・SQL コース受講
  • 大変充実したコンテンツでわかりやすいご説明をありがとうございました。基本的な質問にも丁寧にご説明いただき、また業務のご相談にも乗って頂き大変有意義な時間でした。
    K 様DB・SQL コース受講