HSQLDB - Indizes

EIN database indexist eine Datenstruktur, die die Geschwindigkeit von Operationen in einer Tabelle verbessert. Indizes können mithilfe einer oder mehrerer Spalten erstellt werden. Dies ist die Grundlage für schnelle zufällige Suchvorgänge und eine effiziente Reihenfolge des Zugriffs auf die Datensätze.

Beim Erstellen eines Index sollte berücksichtigt werden, welche Spalten zum Erstellen von SQL-Abfragen verwendet werden, und ein oder mehrere Indizes für diese Spalten erstellt werden.

In der Praxis handelt es sich bei Indizes auch um Tabellentypen, bei denen der Primärschlüssel oder das Indexfeld sowie ein Zeiger auf jeden Datensatz in der tatsächlichen Tabelle enthalten bleiben.

Die Benutzer können die Indizes nicht sehen. Sie werden nur verwendet, um Abfragen zu beschleunigen, und werden von der Datenbanksuchmaschine verwendet, um Datensätze schnell zu finden.

Die Anweisungen INSERT und UPDATE benötigen für Tabellen mit Indizes mehr Zeit, während die Anweisungen SELECT für diese Tabellen schneller ausgeführt werden. Der Grund dafür ist, dass die Datenbank beim Einfügen oder Aktualisieren auch die Indexwerte einfügen oder aktualisieren muss.

Einfacher und einzigartiger Index

Sie können einen eindeutigen Index für eine Tabelle erstellen. EINunique indexbedeutet, dass zwei Zeilen nicht denselben Indexwert haben können. Es folgt die Syntax zum Erstellen eines Index für eine Tabelle.

CREATE UNIQUE INDEX index_name
ON table_name (column1, column2,...);

Sie können eine oder mehrere Spalten verwenden, um einen Index zu erstellen. Erstellen Sie beispielsweise mit tutorial_author einen Index für tutorials_tbl.

CREATE UNIQUE INDEX AUTHOR_INDEX
ON tutorials_tbl (tutorial_author)

Sie können einen einfachen Index für eine Tabelle erstellen. Lassen Sie einfach das Schlüsselwort UNIQUE in der Abfrage weg, um einen einfachen Index zu erstellen. EINsimple index ermöglicht doppelte Werte in einer Tabelle.

Wenn Sie die Werte in einer Spalte in absteigender Reihenfolge indizieren möchten, können Sie das reservierte Wort DESC nach dem Spaltennamen hinzufügen.

CREATE UNIQUE INDEX AUTHOR_INDEX
ON tutorials_tbl (tutorial_author DESC)

ALTER Befehl zum Hinzufügen und Löschen von INDEX

Es gibt vier Arten von Anweisungen zum Hinzufügen von Indizes zu einer Tabelle:

  • ALTER TABLE tbl_name ADD PRIMARY KEY (column_list) - Diese Anweisung fügt einen PRIMARY KEY hinzu. Dies bedeutet, dass indizierte Werte eindeutig sein müssen und nicht NULL sein dürfen.

  • ALTER TABLE tbl_name ADD UNIQUE index_name (column_list) - Diese Anweisung erstellt einen Index, für den die Werte eindeutig sein müssen (mit Ausnahme von NULL-Werten, die möglicherweise mehrmals vorkommen).

  • ALTER TABLE tbl_name ADD INDEX index_name (column_list) - Dies fügt einen normalen Index hinzu, in dem jeder Wert mehrmals vorkommen kann.

  • ALTER TABLE tbl_name ADD FULLTEXT index_name (column_list) - Dadurch wird ein spezieller FULLTEXT-Index erstellt, der für die Textsuche verwendet wird.

Es folgt die Abfrage zum Hinzufügen eines Index zu einer vorhandenen Tabelle.

ALTER TABLE testalter_tbl ADD INDEX (c);

Sie können jeden INDEX löschen, indem Sie die DROP-Klausel zusammen mit dem Befehl ALTER verwenden. Es folgt die Abfrage zum Löschen des oben erstellten Index.

ALTER TABLE testalter_tbl DROP INDEX (c);

INDEX-Informationen anzeigen

Mit dem Befehl SHOW INDEX können Sie alle einer Tabelle zugeordneten Indizes auflisten. Die Ausgabe im vertikalen Format (angegeben durch \ G) ist bei dieser Anweisung häufig hilfreich, um einen langen Zeilenumbruch zu vermeiden.

Im Folgenden finden Sie die generische Syntax zum Anzeigen der Indexinformationen zu einer Tabelle.

SHOW INDEX FROM table_name\G