プライマリーインデックスとセカンダリーインデックスの主な違いは、プライマリーインデックスは主キーを含む一連のフィールドに対するインデックスで、重複を含まないのに対し、セカンダリーインデックスはプライマリーインデックスではなく、重複を含みうるインデックスである点です。
インデックス作成は、データベースの性能を最適化するのに役立つプロセスです。
クエリーを処理するためのディスクアクセスの回数を減らすことができる。
インデックスとは、データベースのテーブルで利用可能なデータをより速く検索し、アクセスするために使用されるデータ構造です。
一般に、インデックスには、検索キーとデータ参照の2つのセクションがあります。
検索キーには、テーブルの主キーや候補キーのコピーが含まれます。
これらは順番に格納されているため、簡単にデータにアクセスすることができます。
データ参照はポインターを含む。
そのキーに対応するディスクブロックのアドレスが格納される。
さらに、インデックスの付け方には様々な種類があります。
そのうちの2つは、プライマリインデックスとセカンダリインデックスです。
プライマリーインデックスとは
インデックスが主キーに基づいている場合、それは主インデックスと呼ばれます。
これらのキーは各レコードに一意です。
さらに、レコードとレコードの間に1対1の関係があります。
プライマリーインデックスは、データをソートして格納するため、検索効率がよい。
インデックスには大きく分けて、密なインデックスと予備のインデックスの2種類があります。
密なインデックスでは、インデックス・テーブルのレコード数は主テーブルのレコード数と同程度です。
データファイルの検索キー値ごとにインデックスレコードが構成されているため、検索動作が非常に高速になります。
第二に、スパースインデックスでは、インデックスレコードは少数の項目に対して現れ、各項目はブロックを指している。
このインデックスタイプでは、テーブルが大きくなるにつれて増加する。
一次メモリはアドレスのマッピングを格納する。
しかし、実際のデータの検索は、マッピングのアドレスに応じて二次メモリが行う。
マッピングのサイズが大きくなると、アドレスの取り出し速度が低下する。
したがって、スペースインデックスは効率的なインデックス作成方法とは言えません。
セカンダリインデックスとは
セカンダリインデックスは、もう1つのレベルのインデックスを導入することで、マッピングのサイズを縮小するのに役立つインデックスタイプです。
最初の段階では、カラムの範囲を選択する。
そのため、最初のレベルのマッピングサイズは小さくなる。
その後、このインデックス法は、各範囲をより小さな範囲に縮小する。
一般に、1次メモリはアドレスのフェッチを高速化するために、第1レベルのマッピングを格納する。
さらに、2次メモリには、2次レベルのマッピングと実際のデータが格納される。
プライマリーインデックスとセカンダリーインデックスの違い
定義
一次インデックスとは、一意の主キーを含むフィールドの集合に対するインデックスで、重複がないことが保証されているものです。
これに対して、セカンダリインデックスはプライマリインデックスではないインデックスであり、重複がある可能性がある。
注文
プライマリインデックスは、データブロック内の行をインデックスキーで並べる必要がありますが、セカンダリインデックスは、データブロック内の行が実際にどのように構成されているかに影響を与えません。
インデックス数
また、プライマリインデックスは1つだけで、セカンダリインデックスは複数存在することができる。
重複
プライマリインデックスには重複がないが、セカンダリインデックスには重複がある可能性がある。
結論
簡単に説明すると、インデックスには様々な種類があり、そのうちの2つがプライマリインデックスとセカンダリインデックスです。
プライマリーインデックスとセカンダリーインデックスの大きな違いは、プライマリーインデックスはフィールドの集合に対して、そのフィールドの主キーを含み、重複を含まないインデックスであり、セカンダリーインデックスはプライマリーインデックスではなく、重複を含みうるインデックスであることである。