クラスタと非クラスタ・インデックスの違い

Anonim

クラスタと非クラスタインデックス

インデックスはどんなデータベースでも非常に重要です。これらは、表からのデータの検索のパフォーマンスを向上させるために使用されます。関連する表のデータとは論理的および物理的に独立しています。したがって、索引は、基本表のデータに影響を与えずに、ドロップ、再作成および再構築できます。 Oracleサーバーは、関連する表が挿入、更新、および削除されたときに、DBAの関与なしに索引を自動的に維持できます。いくつかのインデックスタイプがあります。ここにはいくつかあります。

1。 Bツリー索引

2。ビットマップ索引

3。ファンクション索引

4。逆キー索引

5。 Bツリークラスタインデックス

非クラスタインデックスとは

上記のインデックス・タイプから、非クラスタ化インデックスは次のとおりです。

•Bツリーインデックス

•ビットマップインデックス

•関数ベースのインデックス

•逆キー索引

Bツリー索引は、データベースで最も広く使用されている索引タイプです。 CREATE INDEXコマンドがタイプを指定せずにデータベースで発行された場合、Oracleサーバーはbツリー索引を作成します。 b-tree索引が特定の列に作成されると、oracleサーバーは列の値を格納し、表の実際の行への参照を保持します。

ビットマップ索引は、列データがあまり選択的でない場合に作成されます。つまり、列データの基数が低くなります。これらはデータウェアハウス向けに特別に設計されており、高度に更新可能なテーブルやトランザクションテーブルでビットマップインデックスを使用することは好ましくありません。

機能インデックスはOracle 8iから提供されています。ここでは、インデックス付きの列に関数が使用されています。したがって、機能インデックスでは、列データは通常の方法でソートされません。関数を適用した後に列の値をソートします。これらは、選択クエリのWHERE closeを関数に使用する場合に非常に便利です。

逆キー索引は非常に興味深い索引タイプです。列に 'cityA'、 'cityB'、 'cityC' …などのような多くのユニークな文字列データが含まれているとしましょう。すべての値にパターンがあります。最初の4文字は同じで、次の部分が変更されています。 REVERSEキー索引がこの列に作成されると、Oracleは文字列を反転してbツリー索引にリストアします。

上記の索引タイプは、NON-CLUSTERED索引です。つまり、インデックスされたデータはテーブルの外部に格納され、テーブルへのソートされた参照が保持されます。

クラスタ化インデックスとは

クラスタ化インデックスは特別なタイプのインデックスです。テーブルデータを物理的に格納する方法に従ってデータを格納します。そのため、1つの表に対して複数のクラスタード索引を作成することはできません。 1つの表には1つのクラスタード・インデックスしか存在できません。

クラスタ化インデックスと非クラスタ化インデックスの違いは何ですか?1。表には1つのクラスタード・インデックスしか存在できませんが、1つのテーブルにはクラスター化されていないインデックスが最大249個あります。

2。主キーが作成されると、クラスタ化インデックスが自動的に作成されますが、一意のキーが作成されると、クラスタ化されていないインデックスが作成されます。 3。クラスタード・インデックスの論理的順序はテーブル・データの物理的順序と一致しますが、非クラスタード・インデックスでは一致しません。