との差 Clusteredおよび非クラスター化インデックス

の主な違い Clustered および非クラスター化インデックス

  • クラスター インデックスは、テーブル内のデータ行をキー値に基づいて並べ替えるインデックスの一種です。一方、非クラスター化インデックスは、データを 1 つの場所に格納し、インデックスを別の場所に格納します。
  • Clusterクラスター化インデックスでは、インデックスのリーフ ノードにデータ ページが格納されますが、非クラスター化インデックス方式では、インデックスのリーフ ノードにデータ ページが格納されることはありません。
  • クラスター インデックスには追加のディスク領域は必要ありませんが、非クラスター化インデックスには追加のディスク領域が必要です。
  • Cluster インデックスはデータ アクセスを高速化しますが、一方で非クラスター化インデックスは低速になります。
との差 Clustered および非クラスター化インデックス
Clustered と非クラスター化インデックス

インデックスとは何ですか?

インデックスは、テーブルまたはビューからの行のフェッチを高速化する、データベース内の 1 つ以上の列から構築されたキーです。このキーは、次のようなデータベースに役立ちます。 Oracle、 SQLサーバー、 MySQLなどを使用して、キー値に関連付けられた行をすばやく見つけます。

インデックスには次の XNUMX 種類があります。

  • Cluster編索引
  • また、Cluster編索引

何が Clusterエドインデックス?

Cluster インデックスは、テーブル内のデータ行をキー値に基づいて並べ替えるインデックスの一種です。データベースでは、テーブルごとにクラスター化インデックスが 1 つだけあります。

クラスター化インデックスは、テーブルに格納されるデータの順序を定義します。この順序は 1 つの方法でのみソートできます。したがって、各テーブルには 1 つのクラスター化インデックスのみ存在できます。通常、RDBMS では、主キーを使用して、特定の列に基づいてクラスター化インデックスを作成できます。

非クラスター化インデックスとは何ですか?

非クラスター化インデックスは、データを 1 つの場所に格納し、インデックスを別の場所に格納します。インデックスには、そのデータの場所へのポインターが含まれます。非クラスター化インデックス内のインデックスはさまざまな場所に格納されるため、1 つのテーブルに複数の非クラスター化インデックスを含めることができます。

たとえば、本には複数の索引があり、最初の索引では本の内容を単位ごとに表示し、2 番目の索引では用語の索引をアルファベット順で表示することができます。
非クラスタ化インデックスは、テーブルの非順序付けフィールドに定義されます。このタイプのインデックス作成方法は、主キーとして割り当てられていないキーを使用するクエリのパフォーマンスを向上させるのに役立ちます。非クラスタ化インデックスを使用すると、テーブルに一意のキーを追加できます。

の特徴 Cluster編索引

  • デフォルトおよびソートされたデータストレージ
  • インデックスに XNUMX つだけまたは複数の列を使用する
  • データとインデックスを一緒に保存するのに役立ちます
  • フラグメンテーション
  • 業務執行統括
  • Clusterインデックススキャンとインデックスシーク
  • キーの検索

非クラスター化インデックスの特性

  • キー値のみを保存する
  • ヒープへのポインタ/Clusterインデックス行
  • セカンダリデータアクセスを許可します
  • データへの橋渡し
  • Operaインデックススキャンとインデックスシークの機能
  • テーブルまたはビューに非クラスター化インデックスを作成できます
  • 非クラスタ化インデックスの各インデックス行には、非クラスタ化キー値と行ロケータが格納されます。

ClusterSQL のクラスター化インデックスと非クラスター化インデックス: 主な違い

技術パラメータ Clustered 非クラスター化
のために使用します レコードを並べ替え、順序に従ってクラスター化インデックスを物理的にメモリに保存できます。 非クラスター化インデックスは、データ行の論理的な順序を作成し、物理データ ファイルのポインターを使用するのに役立ちます。
保存方法 データ ページをインデックスのリーフ ノードに保存できるようにします。 このインデックス付け方法では、データ ページがインデックスのリーフ ノードに格納されることはありません。
サイズ クラスター化インデックスのサイズはかなり大きいです。 非クラスター化インデックスのサイズは、クラスター化インデックスに比べて小さくなります。
データアクセス 速く クラスター化インデックスに比べて遅い
追加のディスク容量 必須ではありません インデックスを個別に保存する必要がある
鍵の種類 デフォルトでは、テーブルの主キーは Cluster編インデックス。 複合キーとして機能するテーブルの一意制約とともに使用できます。
主な特徴 クラスター化インデックスを使用すると、データ取得のパフォーマンスが向上します。 結合で使用される列に作成する必要があります。

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

以下の例では、SalesOrderDetailID がクラスター化インデックスです。データを取得するためのサンプルクエリ

SELECT CarrierTrackingNumber, UnitPrice
FROM SalesData
WHERE SalesOrderDetailID = 6

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

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

以下の例では、次のように OrderQty と ProductID に非クラスター化インデックスが作成されます。

CREATE INDEX myIndex ON
SalesData (ProductID, OrderQty)

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

次のクエリは、クラスター化インデックスに比べて高速に取得されます。

SELECT Product ID, OrderQty
FROM SalesData
WHERE ProductID = 714

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

のメリット Cluster編索引

クラスター化インデックスの長所/利点は次のとおりです。

  • Clustered インデックスは、max、min、count タイプのクエリを使用した範囲またはグループ化に最適なオプションです。
  • このタイプのインデックスでは、データ内の特定のポイントに直接検索を実行できるため、そこから順次読み取りを続けることができます。
  • Clustered インデックス メソッドは、位置メカニズムを使用して範囲の先頭にインデックス エントリを配置します。
  • 検索キーの値の範囲を指定したい場合の範囲検索に有効な方法です。
  • ページ転送を最小限に抑え、キャッシュ ヒットを最大化するのに役立ちます。

非クラスター化インデックスの利点

非クラスター化インデックスを使用する利点は次のとおりです。

  • 非クラスタリング インデックスを使用すると、データベース テーブルからデータをすばやく取得できます。
  • クラスター化インデックスに関連するオーバーヘッドコストを回避するのに役立ちます
  • テーブルには複数の非クラスタ化インデックスが存在する場合があります。 RDBMS。 したがって、これを使用して複数のインデックスを作成できます。

の短所 Cluster編索引

クラスター化インデックスを使用する場合の短所/欠点は次のとおりです。

  • 不連続な順序で大量の挿入が行われる
  • クラスター化インデックスは、データ ページとインデックス ページを含む多数の定数ページ分割を作成します。
  • 追加作業 SQL 挿入、更新、削除の場合。
  • クラスター化インデックス内のフィールドが変更されると、クラスター化インデックスのレコードの更新に時間がかかります。
  • リーフ ノードには、主にクラスター化インデックスのデータ ページが含まれます。

非クラスター化インデックスの欠点

非クラスター化インデックスを使用する場合の短所/欠点は次のとおりです。

  • 非クラスター化インデックスは、データを論理的な順序で保存するのに役立ちますが、データ行を物理的に並べ替えることはできません。
  • 非クラスター化インデックスの検索プロセスはコストがかかります。
  • クラスタリング キーが更新されるたびに、クラスタリング キーを格納する非クラスタ化インデックスでも対応する更新が必要になります。