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

クラスター化インデックス と 非クラスター化インデックスの違いを紹介します。

クラスター化インデックス

テーブルのデータをインデックスで指定した列の値で並べ替えて格納します。値が同じ場合は2つ目に指定した列の値で並び替えて格納します。データを並び替えて格納するため、1つのテーブルにはクラスター化インデックスは1つしか作成できません。
最もよく使われるソート順の列や範囲検索を多用する列のインデックスに適しています。

メリット

  • データが並び替えられて保存されているため、インデックス列のソートが高速です。
  • データが並び替えられているため、インデックス列の範囲検索 (between, <, > 演算)が高速です。

デメリット

  • テーブル1つに対して1つしかクラスター化インデックスを作成できません。

作成手順

クラスター化インデックスの作成手順はこちらの記事を参照してください。

非クラスター化インデックス

テーブルのデータの並び替えは実施せず、インデックスで指定した列の値に対応するレコードへのポインタがインデックスファイルに格納されます。範囲検索などを実行するケースが少なく。キーが一意の列のインデックスに適しています。

メリット

  • キーに対応するレコードの検索は高速です
  • 1つのテーブルに複数のインデックスを作成できます。

デメリット

  • 範囲検索(between, <, > 演算)ではクラスター化インデックスと比べると速度が遅いです。
  • データが並び替えられて格納されていないため、インデックスの列でソートをした場合、クラスター化インデックスと比べると速度が遅いです。

作成手順

非クラスター化インデックスの作成手順はこちらの記事を参照してください。

補足

テーブルのデータはヒープに格納されます。ヒープとは順序付けられていないデータ格納構造です。
著者
iPentec.com の代表。ハードウェア、サーバー投資、管理などを担当。
Office 365やデータベースの記事なども担当。
掲載日: 2017-08-18
iPentec all rights reserverd.