|
|
Veröffentlicht am 20.09.2019 09:31:08
|
|
|

Das Konzept der Indexierung
Ziel der Einrichtung eines Index ist es, die Leistung des Datenbanksystems zu verbessern, die Abfragegeschwindigkeit der Daten zu beschleunigen und die Antwortzeit des Systems zu verkürzen. Was ist ein Index: Ein Index in einer Datenbank ähnelt einem Inhaltsverzeichnis eines Buches, bei dem man die gewünschten Informationen schnell finden kann, ohne das ganze Buch lesen zu müssen. In einer Datenbank verwendet ein Datenbankprogramm Indizes, um Daten in einer Tabelle schnell abzufragen, ohne die gesamte Tabelle durchsuchen zu müssen. Das Inhaltsverzeichnis in einem Buch ist eine Liste der Wörter und der Seitenzahlen, in denen sie liegen, und der Index in der Datenbank ist eine Liste von Werten in einer Tabelle und wo jeder Wert gespeichert ist. Vor- und Nachteile der Indexierung: Der Großteil des Overheads der Abfrageausführung besteht aus I/O, und eines der Hauptziele der Verwendung von Indizes zur Leistungssteigerung ist es, vollständige Tabellenscans zu vermeiden, da vollständige Tabellenscanning jede Datenseite der Tabelle von der Festplatte lesen muss, und wenn ein Index auf einen Datenwert zeigt, muss die Abfrage nur ein paar Mal auf die Festplatte gelesen werden. Daher kann die vernünftige Verwendung von Indizes die Abfrage von Daten beschleunigen. Indizes verbessern jedoch nicht immer die Leistung des Systems, indizierte Tabellen benötigen mehr Speicherplatz in der Datenbank, und derselbe Befehl zur Änderung und Löschung von Daten benötigt länger, um den Index auszuführen und zu pflegen. Daher müssen wir den Index sinnvoll verwenden und ihn rechtzeitig aktualisieren, um den suboptimalen Index zu entfernen.
Klassifikation der Indizes
Der Index ähnelt dem Inhaltsverzeichnis vor dem chinesischen Wörterbuch, und man kann das gewünschte Wort schnell anhand des Pinyin oder des Großkapitals finden. EINDEUTIG: Der Indexwert jeder Zeile ist eindeutig (eine eindeutige Einschränkung wird erstellt, und das System erstellt automatisch einen eindeutigen Index). Primärschlüsselindex: Die bei der Erstellung der Tabelle angegebene Primärschlüsselspalte erstellt automatisch einen Primärschlüsselindex und weist einzigartige Merkmale auf. CLUSTERED: Clustered Indexes sind äquivalent zur Pinyin-Suche eines Wörterbuchs, da der clustered Index Datensätze speichert, die physikalisch kontinuierlich sind, das heißt, Pinyin a muss von b gefolgt werden. NICHT-Clustered: NICHT-clustered Indizes entsprechen der Verwendung von Wörterbuchradikalen zum Nachschlagen, nicht-clusterte Indizes sind logisch kontinuierlich und die physische Speicherung ist nicht zusammenhängend. Ein geclusterter Index kann nur eine Tabelle in einer Tabelle haben, während ein nicht-geclusterter Index mehr als eine Tabelle in einer Tabelle haben kann.
Welche Felder müssen indexiert werden
1. Der Primär- und Fremdschlüssel der Tabelle müssen einen Index haben 2. Tabellen mit mehr als 300 Daten sollten einen Index enthalten 3. Tabellen, die häufig mit anderen Tabellen verbunden sind, sollten auf den zusammenhängenden Feldern indexiert werden 4. Felder, die häufig in der Where-Klausel erscheinen, insbesondere solche in großen Tabellen, sollten indexiert werden 5. Felder, die häufig sortiert oder gruppiert werden (d. h. GROUP BY- oder ORDER BY-Operationen ausführen), sollten indexiert werden 6. Der Index sollte auf hochselektiven Feldern aufgebaut sein 7. Der Index sollte auf kleinen Feldern aufgebaut werden, für große Textfelder oder sogar ultra-lange Felder, keine Indizes bauen und Ganzzahlen als Schlüsselwerte verwenden, da ganze Zahlen die schnellste Zugriffsgeschwindigkeit haben 8. Die Erstellung von zusammengesetzten Indizes muss sorgfältig analysiert werden; Versuche, stattdessen Einzelfeldindizes zu verwenden 9. Tabellen, die häufig Datenmanipulationen durchführen, sollten nicht zu stark indexiert werden 10. Nutzlose Indizes löschen, um negative Auswirkungen auf den Ausführungsplan zu vermeiden
Der Nachteil zu vieler Indizes
1. Der Speicherplatz wird größer, und jeder Index muss im Speicherplatz gespeichert werden 2. Wenn es viele nicht-geclusterte Indizes gibt, ändern sich nach der Änderung des Cluster-Index alle nicht-geclusterten Indizes entsprechend 3. Zu viele Indizes führen zu einer Erhöhung der Anzahl der Kombinationen, die im Optimierungsprozess des Optimierers ausgewertet werden müssen, wodurch die Abfragezeit verlängert wird 4. Jeder Index enthält statistische Informationen, und je mehr Indexe, desto mehr statistische Informationen, was die Abfragezeit erhöht 5. Update-Overhead: Sobald sich ein Datenbestand ändert und viele Spalten geändert werden, kann dies dazu führen, dass sich mehrere Indizes ändern, was zu einer Verlangsamung von Updates, Löschungen und Einfügen führt
|
Vorhergehend:Teenager starke Begleitung MV-VideoNächster:C# bekommt den aktuellen Systemfestplattenbuchstaben, das Systemverzeichnis, den Desktop usw
|