1. ホーム
  2. sql-server

[解決済み] クラスター化インデックスと非クラスター化インデックスの実際の意味は何ですか?

2022-03-18 01:13:18

質問

私はDBに触れる機会が少なく、アプリケーションプログラマーとしてしかDBを使ったことがありません。について知りたいです。 ClusteredNon clustered indexes . ググったら出てきたのは:

クラスタ化インデックスは、特殊なタイプのインデックスで テーブル内のレコードは物理的に に格納されます。 そのため、テーブルが持つことができるのは つのクラスタ化されたインデックスがあります。リーフノード クラスタ化インデックスのデータ ページがあります。非クラスタ化インデックスとは 特殊なタイプのインデックスで インデックスの論理的な順序は の物理的な保存順序と一致する。 ディスク上の行。のリーフノードは 非クラスタ化インデックスを構成しない データページ。 その代わり、リーフ ノードには、インデックス行が含まれます。

SOで見つけたのは クラスタ化インデックスと非クラスタ化インデックスの違いは何ですか? .

どなたかわかりやすく説明してください。

どのように解決するのですか?

クラスタ化インデックスでは、行はインデックスと同じ順序でディスク上に物理的に格納されます。したがって、クラスタ化インデックスは1つしか存在できません。

非クラスタ化インデックスでは、物理的な行へのポインタを持つ2番目のリストが存在します。新しいインデックスを作成するたびに、新しいレコードの書き込みにかかる時間が長くなりますが、多くの非クラスタ化インデックスを持つことができます。

一般に、すべての列を取得したい場合は、クラスタ化インデックスから読み取る方が高速です。最初にインデックスにアクセスし、次にテーブルにアクセスする必要がありません。

クラスタ化インデックスのあるテーブルへの書き込みは、データを並べ替える必要がある場合、遅くなることがあります。