1. ホーム
  2. sql

[解決済み] 主キーとクラスタ化インデックスの関係

2022-11-18 14:41:42

質問

ある TABLE はクラスタ化されたインデックスを持たない主キーを持つことができますか?

また TABLE は主キーを持たずにクラスタ化されたインデックスを持つことができますか?

主キーとクラスタ化インデックスの関係を簡単に教えてください。

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

主キーは 論理的 概念であり、テーブルの行を一意に識別するものです。そのため、NULLではいけない、一意でなければならないなど、多くの属性があります。もちろん、一意な識別子でレコードを検索することが多いので、主キーにインデックスがあるのは良いことでしょう。

クラスタ化されたインデックスとは 物理的 概念であり、レコードがディスクに保存される順序に影響を与えるインデックスです。このため、主キーが連番でない場合は書き込みが遅くなることがありますが、データにアクセスする際には非常に高速なインデックスとなります。

はい、クラスタ化インデックスなしで主キーを持つことができます。そして、そうしたい場合もあります(たとえば、主キーが結合テーブルの外部キーの組み合わせであり、書き込み時にディスクシャッフルのオーバーヘッドを発生させたくない場合など)。

はい、主キーでないカラムにクラスタ化インデックスを作成することができます。