Datenstrukturen und Algorithmen
Was ist der Hauptgrund dafür, dass für Indizes in Datenbanken und Dateisystemen B-Bäume (einschließlich B+-Bäumen) statt binärer Suchbäume weit verbreitet sind?
- AJeder Knoten enthält viele Schlüssel; das hält den Baum flach und schränkt den Bereich mit jedem gelesenen Knoten stark ein, sodass weniger Blöcke von Festplatte oder ähnlichen Speichern gelesen werden müssen
- BJeder Knoten enthält nur einen Schlüssel, daher sind weniger Vergleiche nötig als in einem binären Suchbaum
- CDer Baum muss beim Einfügen nicht umgeformt werden und ist daher einfacher zu implementieren als ein binärer Suchbaum
Antwort und Erläuterung anzeigen
Antwort: A. Jeder Knoten enthält viele Schlüssel; das hält den Baum flach und schränkt den Bereich mit jedem gelesenen Knoten stark ein, sodass weniger Blöcke von Festplatte oder ähnlichen Speichern gelesen werden müssen
Festplatten und SSDs lesen Daten in Blöcken von einigen KB, selbst wenn nur ein Byte benötigt wird; es kommt daher darauf an, die Zahl der Lesevorgänge zu verringern. Ein B-Baum legt Hunderte von Schlüsseln in einen Knoten (einen Block), sodass jeder gelesene Knoten in Hunderte von Richtungen verzweigt; selbst 100 Millionen Datensätze sind in 3 bis 4 Ebenen erreichbar. Läuft ein Knoten durch Einfügen über, wird er geteilt, und wird er durch Löschen zu leer, wird er mit einem anderen verschmolzen; so bleiben alle Blätter auf derselben Tiefe. Ein binärer Suchbaum mit 100 Millionen Datensätzen braucht mindestens etwa 27 Ebenen, und auf jeder Ebene einen anderen Block zu lesen, ist langsam.