Hallo,
ja, was genau ein Index ist, und wo ich ihn einsetzen muss, ist mir noch nicht klar.
ein Index ist eine Verwaltungsstruktur, die Suche und Sortieren ungemein beschleunigt (sortierte Ausgabe ist typischerweise eine In-Order-Traversierung des Baumes).
Dadurch können die relevanten Datensätze, die sich bei einem Equijoin (d.h. einem Join mit einer Gleichheitsbedingung) ergeben, sehr schnell ermittelt werden. Ansonsten bleibt dem DBMS nicht viel mehr übrig als das kartesische Produkt der beteiligten Tabellen durchzuarbeiten, d.h. bei k Schülern, l Klassenlisten und m Klassen müssen k*l*n-Kombinationen durchgetestet werden.
Ähnlich gilt für die Suche: kein Index, sequentielle Suche und im Schnitt n/2 Schritte, bis der Datensatz gefunden wird. Bei 1 Milliarde Datensätzen wären dies 500 Millionen Suchoperationen und im schlimmsten Fall eben eine Milliarde Suchoperationen. Selbst bei einem Binärbaum wäre der Datensatz in maximal 30 Suchoperationen gefunden. Mehr zu den in DBMS üblichen B-Trees findest Du in Wikipedia.
Die verschiedenen Joins sind mir auch noch nicht 100%ig klar.
Du kennst unsere Join-Artikel?
- Einführung in Joins von Rouven und
- Fortgeschrittene Jointechniken
Freundliche Grüße
Vinzenz