Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen B-Baum-Indexierung | Abfrageoptimierung.Indizes
SQL-Optimierung und Abfragefunktionen

bookB-Baum-Indexierung

Ein B-Baum-Index ist eine balancierte Baumdatenstruktur, die in Datenbanken häufig verwendet wird, um große Datenmengen effizient zu organisieren und zu durchsuchen.
B-Bäume ähneln sehr den binären Suchbäumen (BST), jedoch können die Knoten in einem B-Baum mehr als zwei Kinder haben.

Ein B-Baum speichert Schlüssel in sortierter Reihenfolge innerhalb der Knoten, was eine schnelle Datenabfrage durch hierarchisches Durchlaufen vom Wurzel- bis zum Blattknoten ermöglicht. Die B-Baum-Indizierung eignet sich besonders für Bereichsabfragen und Gleichheitssuchen und ist daher eine beliebte Wahl zur Optimierung der Datenbankleistung.

Wie funktioniert das?

Der B-Baum-Index organisiert Daten in hierarchischer Struktur, wobei jeder Knoten eine feste Anzahl von Schlüsseln und Zeigern auf Kindknoten enthält.
B-Bäume bleiben balanciert, indem sie sicherstellen, dass alle Blattknoten auf derselben Ebene liegen, was Suchoperationen optimiert.
Bei der Suche nach einem bestimmten Schlüssel durchläuft der B-Baum-Algorithmus den Baum vom Wurzelknoten bis zu den Blattknoten und nutzt dabei die binäre Suche, um den gewünschten Schlüssel effizient zu finden.

Indexsuche umfasst das Durchlaufen des Baums bis zu den Blattknoten, das Folgen der Blattknoten-Kette zum Auffinden passender Datensätze und das Abrufen der tatsächlichen Daten von der Festplatte.

In der Abbildung ist die Suche nach dem Schlüssel 302 dargestellt:

  1. Eine Suchbaumstruktur ist eine Baumart, bei der jeder Knoten zwei Zeiger besitzt: Der linke Zeiger verweist auf Kindknoten mit kleineren Werten als der Elternknoten, der rechte Zeiger auf Kindknoten mit größeren Werten als der Elternknoten;

  2. In einem B-Baum kann der Wurzelknoten mehrere Indexwerte enthalten. Enthält der Wurzelknoten beispielsweise drei verschiedene Werte, besitzt er drei Zeiger, die jeweils auf den Wertebereich zwischen diesen Schlüsseln zeigen;

  3. Um nach einem Schlüssel wie 302 zu suchen, beginnt die Suche am Wurzelknoten und folgt den entsprechenden Zeigern bis zu den Blattknoten. Die Suche ist abgeschlossen, nachdem drei Baumblöcke durchlaufen wurden, wie im Diagramm rot hervorgehoben;

  4. Um nach einem Wertebereich ab 302 zu suchen, können die horizontalen Zeiger zwischen den Blattknoten verwendet werden. Beispielsweise erfolgt das Abrufen der Werte von 302 bis 502, indem die Blattknoten nacheinander durchlaufen werden.

Note
Hinweis

Der für die Suche in einem B-Baum-Index verwendete Schlüssel stammt aus den Werten der indizierten Spalte(n) der Datenbanktabelle. Befindet sich der Index beispielsweise auf einer Spalte wie "client_id", ist der Suchschlüssel der tatsächliche "client_id"-Wert. Jeder eindeutige numerische Wert in der indizierten Spalte dient als Schlüssel im B-Baum-Index und erleichtert das Auffinden und Abrufen der entsprechenden Zeilen in der Datenbanktabelle.

Vor- und Nachteile

Im Gegensatz zur Standarddatenstruktur des binären Suchbaums können B-Baum-Knoten mehr als 2 Kinder aufnehmen. Die standardmäßige maximale Anzahl von Kindern pro Knoten ist typischerweise auf 16 festgelegt.

Index-Implementierung

Um einen B-Baum-Index auf einer Spalte in PostgreSQL zu erstellen, kann folgender SQL-Befehl verwendet werden:

CREATE INDEX index_name ON table_name USING BTREE (column_name1, column_name2,...);

Da der B-Baum-Index der Standardindex in SQL ist, kann auch die folgende Anweisung verwendet werden, um ihn zu erstellen:

CREATE INDEX index_name ON table_name(column_name1, column_name2,..);
Note
Hinweis

In SQL wird beim Erstellen einer Tabelle mit einer Primary Key-Einschränkung in den meisten Datenbankmanagementsystemen automatisch ein Index auf die im Primärschlüssel angegebenen Spalte(n) erstellt. Dieser Index hilft, die Eindeutigkeitsbedingung des Primärschlüssels durchzusetzen und verbessert zudem die Performance von Abfragen, die auf der Suche oder dem Join anhand der Primärschlüsselspalte(n) basieren.

question mark

Welche Operation würde in PostgreSQL nicht dazu führen, dass ein B-Baum-Index reorganisiert oder neu ausbalanciert wird?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 2

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Suggested prompts:

Can you explain the difference between a B-tree and a binary search tree in more detail?

What are some real-world examples where B-tree indexes are especially useful?

How does a B-tree index improve the performance of range queries?

bookB-Baum-Indexierung

Swipe um das Menü anzuzeigen

Ein B-Baum-Index ist eine balancierte Baumdatenstruktur, die in Datenbanken häufig verwendet wird, um große Datenmengen effizient zu organisieren und zu durchsuchen.
B-Bäume ähneln sehr den binären Suchbäumen (BST), jedoch können die Knoten in einem B-Baum mehr als zwei Kinder haben.

Ein B-Baum speichert Schlüssel in sortierter Reihenfolge innerhalb der Knoten, was eine schnelle Datenabfrage durch hierarchisches Durchlaufen vom Wurzel- bis zum Blattknoten ermöglicht. Die B-Baum-Indizierung eignet sich besonders für Bereichsabfragen und Gleichheitssuchen und ist daher eine beliebte Wahl zur Optimierung der Datenbankleistung.

Wie funktioniert das?

Der B-Baum-Index organisiert Daten in hierarchischer Struktur, wobei jeder Knoten eine feste Anzahl von Schlüsseln und Zeigern auf Kindknoten enthält.
B-Bäume bleiben balanciert, indem sie sicherstellen, dass alle Blattknoten auf derselben Ebene liegen, was Suchoperationen optimiert.
Bei der Suche nach einem bestimmten Schlüssel durchläuft der B-Baum-Algorithmus den Baum vom Wurzelknoten bis zu den Blattknoten und nutzt dabei die binäre Suche, um den gewünschten Schlüssel effizient zu finden.

Indexsuche umfasst das Durchlaufen des Baums bis zu den Blattknoten, das Folgen der Blattknoten-Kette zum Auffinden passender Datensätze und das Abrufen der tatsächlichen Daten von der Festplatte.

In der Abbildung ist die Suche nach dem Schlüssel 302 dargestellt:

  1. Eine Suchbaumstruktur ist eine Baumart, bei der jeder Knoten zwei Zeiger besitzt: Der linke Zeiger verweist auf Kindknoten mit kleineren Werten als der Elternknoten, der rechte Zeiger auf Kindknoten mit größeren Werten als der Elternknoten;

  2. In einem B-Baum kann der Wurzelknoten mehrere Indexwerte enthalten. Enthält der Wurzelknoten beispielsweise drei verschiedene Werte, besitzt er drei Zeiger, die jeweils auf den Wertebereich zwischen diesen Schlüsseln zeigen;

  3. Um nach einem Schlüssel wie 302 zu suchen, beginnt die Suche am Wurzelknoten und folgt den entsprechenden Zeigern bis zu den Blattknoten. Die Suche ist abgeschlossen, nachdem drei Baumblöcke durchlaufen wurden, wie im Diagramm rot hervorgehoben;

  4. Um nach einem Wertebereich ab 302 zu suchen, können die horizontalen Zeiger zwischen den Blattknoten verwendet werden. Beispielsweise erfolgt das Abrufen der Werte von 302 bis 502, indem die Blattknoten nacheinander durchlaufen werden.

Note
Hinweis

Der für die Suche in einem B-Baum-Index verwendete Schlüssel stammt aus den Werten der indizierten Spalte(n) der Datenbanktabelle. Befindet sich der Index beispielsweise auf einer Spalte wie "client_id", ist der Suchschlüssel der tatsächliche "client_id"-Wert. Jeder eindeutige numerische Wert in der indizierten Spalte dient als Schlüssel im B-Baum-Index und erleichtert das Auffinden und Abrufen der entsprechenden Zeilen in der Datenbanktabelle.

Vor- und Nachteile

Im Gegensatz zur Standarddatenstruktur des binären Suchbaums können B-Baum-Knoten mehr als 2 Kinder aufnehmen. Die standardmäßige maximale Anzahl von Kindern pro Knoten ist typischerweise auf 16 festgelegt.

Index-Implementierung

Um einen B-Baum-Index auf einer Spalte in PostgreSQL zu erstellen, kann folgender SQL-Befehl verwendet werden:

CREATE INDEX index_name ON table_name USING BTREE (column_name1, column_name2,...);

Da der B-Baum-Index der Standardindex in SQL ist, kann auch die folgende Anweisung verwendet werden, um ihn zu erstellen:

CREATE INDEX index_name ON table_name(column_name1, column_name2,..);
Note
Hinweis

In SQL wird beim Erstellen einer Tabelle mit einer Primary Key-Einschränkung in den meisten Datenbankmanagementsystemen automatisch ein Index auf die im Primärschlüssel angegebenen Spalte(n) erstellt. Dieser Index hilft, die Eindeutigkeitsbedingung des Primärschlüssels durchzusetzen und verbessert zudem die Performance von Abfragen, die auf der Suche oder dem Join anhand der Primärschlüsselspalte(n) basieren.

question mark

Welche Operation würde in PostgreSQL nicht dazu führen, dass ein B-Baum-Index reorganisiert oder neu ausbalanciert wird?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 2
some-alt