SQL - Indizes

Indizes sind special lookup tablesdass die Datenbanksuchmaschine verwenden kann, um das Abrufen von Daten zu beschleunigen. Einfach ausgedrückt ist ein Index ein Zeiger auf Daten in einer Tabelle. Ein Index in einer Datenbank ist einem Index am Ende eines Buches sehr ähnlich.

Wenn Sie beispielsweise auf alle Seiten in einem Buch verweisen möchten, in dem ein bestimmtes Thema behandelt wird, verweisen Sie zunächst auf den Index, in dem alle Themen alphabetisch aufgelistet sind, und verweisen dann auf eine oder mehrere bestimmte Seitenzahlen.

Ein Index hilft, schneller zu werden SELECT Anfragen und WHERE Klauseln, aber es verlangsamt die Dateneingabe mit dem UPDATE und die INSERTAussagen. Indizes können ohne Auswirkung auf die Daten erstellt oder gelöscht werden.

Das Erstellen eines Index umfasst die CREATE INDEX Anweisung, mit der Sie den Index benennen, die Tabelle und die zu indizierenden Spalten angeben und angeben können, ob der Index in aufsteigender oder absteigender Reihenfolge vorliegt.

Indizes können auch eindeutig sein, wie z UNIQUE Einschränkung, da der Index doppelte Einträge in der Spalte oder Kombination von Spalten verhindert, für die ein Index vorhanden ist.

Der Befehl CREATE INDEX

Die grundlegende Syntax von a CREATE INDEX ist wie folgt.

CREATE INDEX index_name ON table_name;

Einspaltige Indizes

Ein einspaltiger Index wird basierend auf nur einer Tabellenspalte erstellt. Die grundlegende Syntax lautet wie folgt.

CREATE INDEX index_name
ON table_name (column_name);

Einzigartige Indizes

Eindeutige Indizes werden nicht nur für die Leistung, sondern auch für die Datenintegrität verwendet. Mit einem eindeutigen Index können keine doppelten Werte in die Tabelle eingefügt werden. Die grundlegende Syntax lautet wie folgt.

CREATE UNIQUE INDEX index_name
on table_name (column_name);

Zusammengesetzte Indizes

Ein zusammengesetzter Index ist ein Index für zwei oder mehr Spalten einer Tabelle. Die grundlegende Syntax lautet wie folgt.

CREATE INDEX index_name
on table_name (column1, column2);

Berücksichtigen Sie beim Erstellen eines einspaltigen Index oder eines zusammengesetzten Index die Spalte (n), die Sie möglicherweise sehr häufig in der WHERE-Klausel einer Abfrage als Filterbedingungen verwenden.

Sollte nur eine Spalte verwendet werden, sollte ein einspaltiger Index die Wahl sein. Sollten in der WHERE-Klausel häufig zwei oder mehr Spalten als Filter verwendet werden, ist der zusammengesetzte Index die beste Wahl.

Implizite Indizes

Implizite Indizes sind Indizes, die vom Datenbankserver automatisch erstellt werden, wenn ein Objekt erstellt wird. Indizes werden automatisch für Primärschlüsseleinschränkungen und eindeutige Einschränkungen erstellt.

Der Befehl DROP INDEX

Ein Index kann mit SQL gelöscht werden DROPBefehl. Beim Löschen eines Index ist Vorsicht geboten, da sich die Leistung entweder verlangsamen oder verbessern kann.

Die grundlegende Syntax lautet wie folgt:

DROP INDEX index_name;

Im Kapitel INDEX-Einschränkung finden Sie einige aktuelle Beispiele für Indizes.

Wann sollten Indizes vermieden werden?

Obwohl Indizes die Leistung einer Datenbank verbessern sollen, sollten sie manchmal vermieden werden.

Die folgenden Richtlinien geben an, wann die Verwendung eines Index überdacht werden sollte.

  • Indizes sollten nicht für kleine Tabellen verwendet werden.

  • Tabellen mit häufigen, umfangreichen Stapelaktualisierungen oder Einfügevorgängen.

  • Indizes sollten nicht für Spalten verwendet werden, die eine hohe Anzahl von NULL-Werten enthalten.

  • Häufig manipulierte Spalten sollten nicht indiziert werden.