Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

SQL: Datenbankabfragen beschleunigen

Index nutzen

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Ein Index ist eine Art Vorsortierung der Datenbank, um anschließend schneller auf die Daten zugreifen zu können. Aber lohnt sich das wirklich oder wird dadurch nur die Datenbank größer?

Transkript

Ein Index ist ja so eine Art Vorsortierung der Daten, so das die Datenbank schneller drauf zugreifen kann. Da gibt's verschiedene Varianten, im Grunde 3 Stufen, die man auch hier schon mal sehen kann. Es gibt eine indiziert Nein, d. h. es liegt kein Index vor. Die nächst stärkere Stufe ist Ja (Duplikate möglich), d. h. es gibt eine Vor Sortierung, die Datenbank kann schnell drauf zugreifen, aber es sind doppelte Werte möglich. Und das trifft jetzt hier dieses Feld, weil das nämlich ein primär Schlüssel ist. Sie können auch ein Index und Duplikat verlangen, also ein völlig eindeutigen, in diesem Fall eben ein primär Schlüssel und das bedeutet, dass es nicht gelingen wird ein zweites mal den gleichen Wert in der Tabelle unterzubringen. Es gibt noch eine andere Version, dieser Indizes, die kann man hier oben sehen, der PrimaryKey, der Primärschlüssel sagt er muss eindeutig sein. Das ist ein normaler Index der nicht eindeutig sein muss. Und hier ist es noch ein zusammengesetzter Index der bei Access dadurch entsteht das man hier keinen zweiten Namen eingibt. Der verlangt, dass beide Felder zusammen eindeutig sein müssen, also der Nachname an sich ist nicht eindeutig. Der Vorname selber auch nicht aber die Kombination aus beiden, das ist also ein zusammengesetzter Index. Dann gucken wir mal was die Messungen dazu sagen. Wenn Sie bspw. ein Feld filtern sagen wir ein Filter auf ein Primärschlüssel Feld und im Vergleich dazu ein Filter auf ein Feld ohne Index. Dann sehen Sie beim Primärschlüssel, das ist dermaßen schnell auch bei einer viertel Million Datensätze, das es unter der Messgenauigkeit liegt. Unter 1 ms und ein Feld ohne Index mal eben 93 ms braucht. Das ist, wenn wir mal unterstellen das würde wenigstens 1 ms dauern, mal eben eine Verschlechterung auf 9.300%. Daraus folgt hier ganz klar unbedingt Indizes nutzen! Lieber eins zu viel als zu wenig. Da müssen wir nochmal gucken ob das irgendwo vielleicht Nachteile haben könnte, also bspw. wenn Sie ein Filter auf ein Primärschlüssel machen oder ein Filter auf ein Textfeld mit Index. Das könnte ja ein bisschen aufwendiger sein, weil der Primärschlüssel immer eindeutig ist, Textfeld nicht. Die sind beide unter 1 ms. Es gibt also keinen Unterschied. Wenn Sie hingegen ein Filter auf ein Textfeld ohne Index setzen oder ein Filter auf zwei Textfelder auch ohne Index, dann werden Sie feststellen, dass ein Textfeld braucht schon 93 ms, zwei davon brauchen mehr als das Doppelte, über 203 ms. D. h. eine Verschlechterung auf 218%. Wenn Sie dasselbe mit Index machen, ein Textfeld oder zwei Textfelder, dann ist es erstens wieder unglaublich schnell unter 1 ms und zwar in beiden Fällen. Es macht also keinen Unterschied ob Sie einen oder mehrere Felder filtern, wenn dort ein Index drauf ist. Das ist ja genau der Sinn eines Index und dann gibt's noch die Diskussion was ist eigentlich wenn man Datensätze anfügt. Denn beim Anfügen muss ja der Index neu erstellt werden. Es kommt ein neuer Wert dazu, der muss vielleicht ein sortiert werden und so im Vergleich an eine Tabelle die drei Indizes hat und an eine Tabelle die ganz ohne Indizes ist. Da ist kein Unterschied zu messen. Mit drei Indizes sind Sie bei 31 ms und um diese Menge Datensätze anzufügen und ohne Index praktisch das gleiche. Und dabei ist es egal, das steht jetzt hier nicht mit drauf, ob Sie an eine Million oder eine Milliarde Datensätze nochmal welche anfügen, was den Index natürlich größer macht oder ob Sie das beim ersten Mal in eine leere Tabelle machen. Die Zeit dauert ein bisschen länger aber in beiden Fällen immer gleich. Es ist also offensichtlich so optimiert, dass erst die ganzen Daten angefügt werden und dann der Index neu erstellt wird. Sonst würde es nämlich explosionsartig länger dauern. Die Empfehlung im Zusammenhang mit einem Index lautet also ganz klar machen.

SQL: Datenbankabfragen beschleunigen

Entdecken Sie, wo das Beschleunigungspotenzial für SQL-Datenbanken liegt und lernen Sie die Rezepte für bessere Performance.

2 Std. 15 min (39 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Exklusiv für Abo-Kunden
Erscheinungsdatum:25.03.2015

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!