Indizierung in DBMS: Was ist, Arten von Indizes mit BEISPIELEN

โšก Intelligente Zusammenfassung

Die Indizierung in Datenbanken ist eine Datenstrukturtechnik, die es ermรถglicht, Datensรคtze schnell รผber eine Map abzurufen.ping Ein Suchschlรผssel verweist auf die Festplattenadresse des zugehรถrigen Datensatzes. Primรคr-, Sekundรคr-, Cluster-, Mehrebenen- und B-Baum-Indizes bieten jeweils unterschiedliche Kompromisse hinsichtlich Speicherplatz, Geschwindigkeit und Wartungsaufwand.

  • ๐Ÿ—‚๏ธ Kernidee: Ein Index ist eine kleine zweispaltige Tabelle, die einen Schlรผssel mit einem Zeiger auf den entsprechenden Datenblock verknรผpft.
  • ๐Ÿ“‡ Primรคrindex: Eine geordnete Datei zum Schlรผssel, aufgeteilt in dichte und dรผnnbesetzte Varianten.
  • ๐Ÿ”Ž Dicht vs. spรคrlich: Ein dichter Index speichert einen Eintrag pro Schlรผssel; ein dรผnner Index speichert weniger Eintrรคge, um Speicherplatz zu sparen.
  • ๐Ÿท๏ธ Sekundรคrindex: Es basiert auf einem Feld ohne Sortierung und verwendet Buckets, um jeden รผbereinstimmenden Datensatz zu erreichen.
  • ๐Ÿ“š ClusterIndex: Gruppiert Zeilen, die einen nicht eindeutigen Schlรผssel gemeinsam haben, zu einem Cluster.
  • ๐ŸŒณ B-Baum-Index: Ein balancierter mehrstufiger Baum, dessen verknรผpfte Blattknoten sowohl zufรคlligen als auch sequenziellen Zugriff unterstรผtzen.
  • ๏ธ Abtausch: Indizes beschleunigen zwar das Lesen, verlangsamen aber das Einfรผgen, Aktualisieren und Lรถschen und verbrauchen zusรคtzlichen Speicherplatz.

Indizierung in der Datenbank

Was ist Indizierung?

Indizierung Ein Index ist eine Datenstrukturtechnik, die es ermรถglicht, Datensรคtze schnell aus einer Datenbankdatei abzurufen. Ein Index ist eine kleine Tabelle mit nur zwei Spalten. Die erste Spalte enthรคlt eine Kopie des Primรคr- oder Kandidatenschlรผssels der Tabelle. Die zweite Spalte enthรคlt eine Menge von Schlรผsseln. Zeiger enthรคlt die Adresse des Festplattenblocks, in dem dieser spezifische Schlรผsselwert gespeichert ist.

Ein Inhaltsverzeichnis:

  • Nimmt einen Suchbegriff als Eingabe entgegen.
  • Gibt effizient eine Sammlung รผbereinstimmender Datensรคtze zurรผck.

Ohne Index muss die Datenbank jede Zeile durchsuchen, um eine Anfrage zu beantworten. Mit einem Index springt sie direkt zum passenden Datenblock, weshalb die Wahl des Indextyps einen groรŸen Einfluss auf die Performance hat.

Arten der Indizierung im DBMS

Art der Indizes in der Datenbank
Art der Indizes in der Datenbank

Die Indizierung in einer Datenbank wird anhand ihrer Indizierungsattribute definiert. Die zwei Hauptarten von Indizierungsmethoden sind:

  • Primรคrindizierung
  • Sekundรคre Indizierung

Primรคrindex im DBMS

Ein Primรคrindex ist eine geordnete Datei fester Lรคnge mit zwei Feldern. Das erste Feld entspricht dem Primรคrschlรผssel, das zweite Feld verweist auf den entsprechenden Datenblock. Im Primรคrindex besteht stets eine Eins-zu-Eins-Beziehung zwischen den Eintrรคgen der Indextabelle.

Der Primรคrindex ist auรŸerdem in zwei Typen unterteilt:

  • Dichter Index
  • Sparse-Index

Dichter Index

In einem dichten Index wird fรผr jeden Suchschlรผsselwert in der Datenbank ein Eintrag erstellt. Dies beschleunigt die Suche, benรถtigt aber mehr Speicherplatz fรผr die Indexeintrรคge. Bei dieser Methode enthalten die Eintrรคge den Suchschlรผsselwert und verweisen auf den entsprechenden Datensatz auf der Festplatte.

Dichte Indexierung in DBMS

Sparse-Index

Ein Sparse-Index ist ein Indexeintrag, der nur fรผr einige Werte in der Datei existiert. Sparse-Indizes helfen Ihnen, die Probleme der dichten Indizierung zu lรถsen. DBMSBei dieser Technik speichert ein Bereich von Indexspalten dieselbe Datenblockadresse, und wenn Daten abgerufen werden mรผssen, wird diese Blockadresse abgerufen.

Ein spรคrlicher Index speichert Indexeintrรคge nur fรผr einige Suchschlรผsselwerte. Er benรถtigt weniger Speicherplatz und einen geringeren Wartungsaufwand fรผr Einfรผgungen und Lรถschungen, ist aber beim Auffinden von Datensรคtzen langsamer als ein dichter Index.

Nachfolgend ein Beispiel fรผr einen Sparse-Index in einer Datenbank.

Sparse Index in DBMS

Dichte Index vs. Sparse Index

Die beiden primรคren Indexvarianten bringen gegensรคtzliche Vor- und Nachteile mit sich, die im Folgenden zusammengefasst werden.

Aspekt Dichter Index Sparse-Index
Eintrรคge Eins pro Suchschlรผssel Einer pro Block
Weltraum Mehr Less
Suchgeschwindigkeit Schneller Langsamer
Wartung Hรถher Senken

Sekundรคrindex im DBMS

Der Sekundรคrindex in einem DBMS kann durch ein Feld generiert werden, das fรผr jeden Datensatz einen eindeutigen Wert besitzt und als Kandidatenschlรผssel dienen sollte. Er wird auch als nicht-clustering Index bezeichnet.

Diese zweistufige Datenbankindizierungstechnik wird verwendet, um die Karte zu verkleinernping GrรถรŸe der ersten Ebene. Fรผr die erste Ebene wird ein groรŸer Zahlenbereich ausgewรคhlt, sodass die Karteping Die GrรถรŸe bleibt immer klein.

Beispiel fรผr einen Sekundรคrindex

Lassen Sie uns die Sekundรคrindizierung anhand eines Datenbankindexbeispiels verstehen. In einer Bankkontendatenbank werden die Daten sequenziell nach Kontonummer (acc_no) gespeichert, aber Sie mรถchten mรถglicherweise alle Konten in einer bestimmten Filiale der ABC-Bank finden.

Hier kรถnnen Sie fรผr jeden Suchschlรผssel einen Sekundรคrindex anlegen. Der Indexeintrag verweist auf einen Bucket, der Zeiger auf alle Datensรคtze mit dem entsprechenden Suchschlรผsselwert enthรคlt.

Sekundรคrindex im DBMS

Clustering-Index im DBMS

In einem gruppierten Index werden die Datensรคtze selbst und nicht Zeiger darauf gespeichert. Manchmal wird der Index fรผr Spalten erstellt, die keine Primรคrschlรผssel sind und daher nicht fรผr jeden Datensatz eindeutig sind. In diesem Fall kรถnnen Sie zwei oder mehr Spalten gruppieren, um eindeutige Werte zu erhalten und einen Index zu erstellen โ€“ einen sogenannten gruppierten Index. Dies beschleunigt auch das Auffinden des gewรผnschten Datensatzes.

Ejemplo: Angenommen, ein Unternehmen hat viele Mitarbeiter in verschiedenen Abteilungen eingestellt. In diesem Fall sollte ein Clustering-Index fรผr alle Mitarbeiter erstellt werden, die derselben Abteilung angehรถren.

Sie werden als ein einziger Cluster betrachtet, und der Index verweist auf den gesamten Cluster. Hierbei ist Department_no ein nicht eindeutiger Schlรผssel.

Was ist ein mehrstufiger Index?

Mehrstufige Indizierung wird erstellt, wenn ein Primรคrindex nicht in den Arbeitsspeicher passt. Bei dieser Indizierungsmethode lรคsst sich die Anzahl der Festplattenzugriffe zum Erreichen eines Datensatzes reduzieren. Die Datensรคtze werden als sequentielle Datei auf der Festplatte gespeichert, und auf dieser Datei wird ein Sparse-Index erstellt.

Mehrstufiger Index im DBMS

B-Baum-Index

Der B-Baum-Index ist die am weitesten verbreitete Datenstruktur fรผr die baumbasierte Indizierung in Datenbanksystemen. Es handelt sich um ein mehrstufiges Format der baumbasierten Indizierung, das auf einem ausgewogenen Index basiert. binรคre SuchbรคumeAlle Blattknoten des B-Baums enthalten die eigentlichen Datenzeiger.

Darรผber hinaus sind alle Blattknoten รผber eine verkettete Liste miteinander verbunden, wodurch ein B-Baum sowohl wahlfreien als auch sequenziellen Zugriff unterstรผtzt.

B-Baum-Index im DBMS

  • Blattknoten mรผssen zwischen 2 und 4 Werte aufweisen.
  • Alle Pfade von der Wurzel zu einem Blatt sind im GroรŸen und Ganzen gleich lang.
  • Alle Nicht-Blattknoten auรŸer dem Wurzelknoten haben zwischen 3 und 5 Kindknoten.
  • Jeder Knoten, der weder Wurzel noch Blatt ist, hat zwischen n/2 und n Kinder.

Wo exakte รœbereinstimmungssuchen dominieren und Bereichsscans selten sind, Hashing kann eine schnellere Alternative zu einem B-Baum-Index sein.

Vorteile der Indexierung

Die wichtigsten Vorteile der Indexierung sind:

  • Dadurch wird die Gesamtzahl der zum Abrufen von Daten erforderlichen E/A-Operationen reduziert, sodass Sie nicht direkt auf eine Zeile in der Tabelle zugreifen mรผssen.
  • Es bietet Nutzern eine schnellere Suche und einen schnelleren Abruf von Daten.
  • Dadurch kann der Tabellenspeicherplatz reduziert werden, da die ROWID nicht mehr fรผr jede verknรผpfte Zeile im Index gespeichert werden muss.
  • Die Daten in den Blattknoten sind bereits nach dem Wert des Schlรผssels sortiert.

Nachteile der Indizierung

Die wichtigsten Nachteile der Indizierung sind:

  • Fรผr die Indizierung benรถtigen Sie einen Primรคrschlรผssel in der Tabelle mit einem eindeutigen Wert.
  • Es ist nicht mรถglich, einen weiteren Index auf Daten aufzubauen, die bereits auf die gleiche Weise indexorganisiert sind.
  • Sie dรผrfen eine indexorganisierte Tabelle nicht partitionieren.
  • Die Indizierung verringert die Leistung bei INSERT-, DELETE- und UPDATE-Abfragen.

Hรคufig gestellte Fragen

Ein Primรคrindex basiert auf dem Feld, nach dem die Datei sortiert ist, รผblicherweise dem Primรคrschlรผssel. Ein Sekundรคrindex basiert auf einem anderen Feld und benรถtigt daher Buckets, um jeden รผbereinstimmenden Datensatz zu erreichen.

Ein B-Baum bleibt im Gleichgewicht, sodass jede Suche eine รคhnlich geringe Anzahl von Festplattenzugriffen erfordert, und seine verknรผpften Blรคtter unterstรผtzen Bereichsabfragen. Dadurch eignet er sich sowohl fรผr Punkt- als auch fรผr Bereichsabfragen.

Bei jedem Einfรผgen, Aktualisieren und Lรถschen mรผssen auch die jeweiligen Indizes aktualisiert werden. Mehr Indizes beschleunigen zwar das Lesen, erhรถhen aber den Schreibaufwand und den Speicherplatzbedarf. Daher sollten sie nur dort erstellt werden, wo Abfragen tatsรคchlich davon profitieren.

KI-Indexberater analysieren die Abfragelast und empfehlen Indizes, die die Kosten am stรคrksten senken, wรคhrend sie gleichzeitig vorhandene Indizes kennzeichnen, die nie verwendet werden und nur zusรคtzlichen Aufwand verursachen.

Ein gruppierter Index speichert die Zeilen selbst in Indexreihenfolge, daher kann eine Tabelle nur einen solchen Index haben. Ein nicht gruppierter Index speichert Zeiger auf die Zeilen, daher kann eine Tabelle mehrere davon haben.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: