インデックスとは何ですか?
インデックスはユーザーによって作成され、変更および削除でき、実際にはデータベースに物理的に保存されます。テーブル内の[1つの列または複数の列]値のコレクションです。テーブルを指す対応する物理データ、これらの値をマークするデータ ページへの論理ポインターのリスト。
インデックスの利点
最初に
一意のインデックスを作成すると、データベーステーブル内のデータの各行の一意性が保証されます。
2 番目の
により、データの取得が大幅に高速化されます。これがインデックスを作成する主な理由でもあります。
3 番目の
はテーブル間の接続を高速化することができ、データの参照整合性を達成する上で特に意味があります。
4 つ目
データの取得にグループ化句と並べ替え句を使用すると、クエリでのグループ化と並べ替えの時間も大幅に短縮できます。
5 番目
インデックスを使用すると、クエリ プロセス中に最適化非表示機能を使用してシステムのパフォーマンスを向上させることができます。
インデックスのデメリット
1
時間
がかかる インデックスの作成と維持には時間がかかり、データ量が増えるとその時間も長くなります。
2
は
スペースを占有します
インデックスは、データ テーブルによって占有されるデータ スペースに加えて、一定量の物理スペースも占有する必要があります。その場合、必要なスペースはさらに大きくなります。
3
メンテナンス
遅い
テーブル内のデータを追加、削除、変更する場合、インデックスを動的に維持する必要があるため、データのメンテナンス速度が低下します。
インデックスの分類
1 クラスター化インデックス
テーブルのデータはインデックスの順序で格納されます。クラスター化インデックスの場合、リーフ ノードには実際のデータ行が格納され、個別のデータ ページは存在しません。
2 ノンクラスタードインデックス
テーブルデータの格納順序はインデックスの順序とは関係がありません。非クラスター化インデックスの場合、リーフ ノードにはインデックス フィールド値とデータ ページのデータ行への論理ポインターが含まれており、このレイヤーはデータ ページに隣接しており、その行数はデータ テーブルの量と一致します。行。
注: 実際のデータの物理的な順序は 1 つだけであるため、テーブルに作成できるクラスター化インデックスは 1 つだけです。テーブルにクラスター化インデックスがない場合、そのテーブルは「ヒープ」と呼ばれます。このようなテーブルのデータ行には特別な順序はなく、すべての新しい行がテーブルの最後に追加されます。データベースのインデックスを使用すると、検索時に場所をすぐに見つけることができます。データベースの挿入の場合、通常は最後の行に挿入されるため、インデックスによって挿入のパフォーマンスを向上させることはできません。