Wie mit SQL-Indizes arbeiten

Die SQL-Spezifikation bezieht sich nicht auf das Thema der Indizes, aber das Weglassen bedeutet nicht, dass Indizes sind selten oder sogar optionale Teile eines Datenbanksystems. Jede SQL-Implementierung unterstützt Indizes, aber Sie werden keine allgemeine Übereinstimmung finden, wie sie zu unterstützen.

Was ist ein Index?

Indizes können viel Zeit sparen. Ein Index ist ein Tochterunternehmen oder Auflagetisch, die zusammen mit einer Datentabelle geht. Für jede Zeile in der Datentabelle, haben Sie eine entsprechende Zeile in der Indextabelle. Die Reihenfolge der Zeilen in der Indextabelle ist anders.

Der Index enthält das Feld, das die Grundlage des Index (in diesem Fall Client) und einen Zeiger in der Datentabelle bildet. Der Zeiger in jeder Indexzeile gibt die Zeilennummer der entsprechenden Zeile in der Datentabelle.

Warum sollten Sie einen Index wollen

Wenn Sie eine Tabelle in Client Auftrag bearbeiten möchten, und Sie haben einen Index in Client Reihenfolge angeordnet sind, können Sie Ihre Operation durchführen fast so schnell wie Sie können, wenn die Datentabelle selbst bereits in Client Ordnung waren. Sie können durch den Index arbeiten, bewegen sofort zu jeder entsprechenden Datensatz der Indexzeile durch den Zeiger in dem Index.

Wenn Sie einen Index verwenden, ist die Tabelle Verarbeitungszeit proportional zu N, wobei N die Anzahl der Datensätze in der Tabelle ist. Ohne Index, die Verarbeitungszeit für die gleiche Operation N lg N proportional ist, wobei LG N der Logarithmus von N an die Basis 2. Bei großen Tabellen ist, ist der Unterschied groß. Einige Operationen sind nicht praktikabel, ohne die Hilfe von Indizes auszuführen.

Angenommen, eine Tabelle enthält, 1.000.000 Datensätze (N = 1.000.000), und jeden Datensatz eine Millisekunde dauert die Verarbeitung (ein Tausendstel einer Sekunde). Wenn Sie einen Index haben, nimmt die gesamte Tabelle der Verarbeitung nur 1000 Sekunden - weniger als 17 Minuten.

Ohne einen Index, müssen Sie über den Tisch gehen etwa 1.000.000 x 20-mal das gleiche Ergebnis zu erzielen. Dieser Prozess würde 20.000 Sekunden dauern - mehr als fünfeinhalb Stunden. Der Unterschied zwischen 17 Minuten und fünfeinhalb Stunden ist beträchtlich.

Wie ein Index halten

Nachdem Sie einen Index erstellen, müssen Sie es beibehalten. Glücklicherweise hält Ihr DBMS Ihre Indizes für Sie automatisch, indem sie jedes Mal aktualisieren Sie die entsprechenden Datentabellen aktualisieren. Dieser Vorgang dauert mehr Zeit, aber es lohnt sich. Wenn Sie einen Index und DBMS erstellen hält es ist der Index immer verfügbar, um Ihre Datenverarbeitung zu beschleunigen, egal wie oft Sie es nennen müssen.

Geraten Sie nicht in die Falle der einen Index für den Abruf Aufträge erstellen, die Sie wahrscheinlich nicht zu verwenden sind. Index Wartung ist eine zusätzliche Operation, die der Computer jedes Mal ausführen muss es das Indexfeld ändert oder hinzufügt oder löscht eine Datentabellenzeile - und dieser Vorgang beeinträchtigt die Leistung. Erstellen Sie nur die Indizes, die Sie erwarten, als Abrufschlüssel verwenden - und nur für Tabellen, die eine große Anzahl von Zeilen enthalten.

In Verbindung stehende Artikel