Unterschied zwischen Cluster und Nicht -Cluster -Index

Unterschied zwischen Cluster und Nicht -Cluster -Index

Cluster gegen Nicht -Cluster -Index

Indizes sind in jeder Datenbank sehr wichtig. Sie werden verwendet, um die Leistung von Abrufdaten aus Tabellen zu verbessern. Sie sind logisch und physisch unabhängig von den Daten in den zugehörigen Tabellen. Daher können Indizes abfallen, neu erstellen und wieder aufbauen, ohne die Daten der Basistabellen zu beeinflussen. Oracle Server kann seine Indizes automatisch ohne Beteiligung eines DBA verwalten, wenn die zugehörigen Tabellen eingefügt, aktualisiert und gelöscht werden. Es gibt mehrere Indextypen. Hier sind einige davon.

1. B-Tree-Indizes

2. Bitmap -Indizes

3. Funktionsbasierte Indizes

4. Reverse-Key-Indizes

5. B-Tree-Cluster-Indizes

Was ist ein Nicht -Cluster -Index?

Aus den oben genannten Indextypen finden Sie nicht klusterte Indexes.

• B-Tree-Index

• Bitmap -Index

• Funktionsbasiertes Index

• Reverse-Key-Indizes

B-Tree-Indizes sind die am häufigsten verwendeten Index-Datenbanken-Art von Datenbanken. Wenn in der Datenbank den Befehl create Index erstellt wird, erstellt Oracle Server ohne Angabe eines Typs einen B-Tree-Index. Wenn in einer bestimmten Spalte ein B-Tree-Index erstellt wird, speichert Oracle Server die Werte der Spalte und verweist auf die tatsächliche Zeile der Tabelle.

Bitmap -Indizes werden erstellt, wenn die Spaltendaten nicht sehr selektiv sind. Das heißt, die Spaltendaten haben eine niedrige Kardinalität. Diese sind speziell für Data Warehouses konzipiert, und es ist nicht gut, Bitmap -Indizes für hoch aktualisierbare oder Transaktionstabellen zu verwenden.

Funktionale Indizes kommen von Oracle 8i. Hier wird eine Funktion in der indizierten Spalte verwendet. Daher werden in einem Funktionsindex die Spaltendaten nicht normal sortiert. Es sortiert die Werte der Spalten nach Anwendung der Funktion. Diese sind sehr nützlich, wenn die Schließung der Auswahlabfrage eine Funktion verwendet wird.

Reverse-Key-Indizes sind ein sehr interessanter Indextyp. Nehmen wir an, eine Spalte enthält viele eindeutige Zeichenfolgendaten wie 'Citya', 'Cityb', 'Cityc' usw. Alle Werte haben ein Muster. Die ersten vier Zeichen sind gleich und die nächsten Teile werden geändert. Wenn in dieser Spalte der Reverse-Taste-Index erstellt wird, wird Oracle die Zeichenfolge umkehren und in einem B-Tree-Index wiederhergestellt.

Die oben genannten Indextypen sind nicht klusterische Indizes. Das heißt, indizierte Daten werden außerhalb der Tabelle gespeichert, und ein sortierter Verweis auf die Tabelle wird aufbewahrt. 

Was ist ein gruppierter Index??

Clustered -Indizes sind eine spezielle Art von Indizes. Es speichert Daten entsprechend der Art und Weise, dass Tabellendaten physisch gespeichert werden. Es können also nicht viele Cluster -Indizes für eine Tabelle geben. Eine Tabelle kann nur einen Cluster -Index haben.

Was ist der Unterschied zwischen Clustered- und Nicht-Cluster-Indizes?

1. Die Tabelle kann nur einen Cluster-Index haben, aber in einer Tabelle können bis zu 249 nicht geklüsterte Indizes bestehen.

2. Der Clustered-Index wird automatisch erstellt, wenn ein Primärschlüssel erstellt wird. Ein nicht klusterer Index wird jedoch erstellt, wenn ein eindeutiger Schlüssel erstellt wird.

3. Die logische Reihenfolge des Clustered-Index übereinstimmt mit der physischen Reihenfolge der Tabellendaten, aber in nicht klusterierten Indexen ist dies nicht der Fall.