索引 (データベース)
物理レコードはディスク上でこのソート順であるため、シーケンスの次の行項目は最後の行項目の直前または直後にあり、必要なデータブロックの読み取りは少なくなる。したがって、クラスタ化インデックスの主な機能は、物理データ行を指すインデックスブロックに従い物理データ行の順序を並び替えることである。データベースによっては、データブロックとインデックスブロックを別々のファイルに分割する場合もあれば、2つの完全に異なるデータブロックを同じ物理ファイル内に配置する場合もある。
以下に、クラスタ化インデックスを提供するデータベース製品の例を挙げる:
Oracle Database のインデックス構成表。
Microsoft SQL Server のクラスタ化インデックス。
MySQL InnoDB では強制的に主キーがクラスタ化インデックスになる。
PostgreSQL では CLUSTER コマンドにより類似の効果を得られる。
Microsoft SQL Serverでは、クラスタ化インデックスの木構造は実際のデータに対応し、非クラスタ化インデックスの場合のように他の場所にあるデータへのポインターではない。 各リレーションは、クラスタ化インデックスを1つと非クラスタ化インデックスを複数持つことができる。
多くのデータベースは、インデックスに B木 (または B+木, B*木) 構造を採用している。B木は範囲検索にも利用できる。
B木を使ったインデックスでは、インデックス定義の際の順序が重要である。最初の列のみを条件とした検索であればインデックスは利用できるが、2番目以降の列を指定するだけではインデックスは利用できない。
インデックスのキーを (住所, 苗字, 名前) とする電話帳データベースを例に挙げると、住所が与えられればこのインデックスを使った検索ができるが、苗字だけではできない。