クラスター化インデックスは、ディスク上のデータを物理的に並べ替えます。
テーブルemployeeとcolumd employee_idがあるとします。今9, 6, 10, 4
、employee_id の下に値を保存します。employee_id にクラスター化インデックスを使用します。ディスク上の値は、4、6、9、10 などのように並べ替えられて格納されます。id が 9 の employee_id で検索すると、データベースはバイナリ検索などの検索アルゴリズムを使用して、id 9 のレコードをすばやく見つけることができます。バイナリ検索のように 1 回の操作でレコードを精査できない可能性があります。
あれは正しいですか?
非クラスター化インデックス 非クラスター 化インデックスには、実際のデータ行へのポインター (存在する場合はクラスター化インデックスへのポインター) と共に順序付けされたインデックス付き列からのデータの複製があります。したがって、上記と同じ例を考えてみましょう。この場合、データベースは別のオブジェクトを作成して、メモリの場所とともにデータを保存します。このようなもの
9 -- 物理的な場所
6 -- その物理的な場所
10 -- その物理的な場所
4 -- その物理的な場所
したがって、最初に新しく作成されたオブジェクトで 10 を検索し、そのメモリの場所を取得する必要があります。その後、元のメモリ位置に戻ります。 では、なぜ検索が高速になるのでしょうか?
また、私の理解によれば、select句の下ではなくwhere句の下にある列にインデックスを作成する必要があります。右?