B-Baum und B+-Baum
Kurz: B-Bäume sind ausgeglichene Suchbäume mit vielen Schlüsseln pro Knoten. Sie bilden die Grundlage der meisten Datenbankindizes, weil sie mit wenigen Plattenzugriffen auskommen.
Genauer: Jeder Knoten entspricht einer Speicherseite (z. B. 8 KB) und enthält hunderte Schlüssel. Dadurch ist der Baum sehr flach: Mit 3–4 Ebenen findet man ein Element unter Millionen. Beim B+-Baum liegen alle Daten in den Blättern, die untereinander verkettet sind, was Bereichsabfragen beschleunigt.
Im Detail
- Suche: Von der Wurzel abwärts, in jedem Knoten binär suchen. Laufzeit O(log n) mit großer Basis.
- Einfügen: In das Blatt; ist es voll, wird es geteilt (Split) und der mittlere Schlüssel wandert nach oben.
- Löschen: Bei zu wenig Einträgen werden Knoten verschmolzen oder umverteilt.
- B+-Baum: Innere Knoten nur als Wegweiser, Blätter verkettet.
- Auswirkungen: Zufällige Schlüssel (UUIDv4) erzeugen viele Splits, fortlaufende Schlüssel sind günstiger.
- Alternativen: LSM-Trees (schreiboptimiert), Hash-Indizes.
Siehe auch: LSM-Tree und Sorted String Tables, SQL-Index