Indizes in SQL++#
Indizes in SQL++ sind spezielle Datenstrukturen, die dabei helfen, die Ausführung von Abfragen zu beschleunigen. Indizes werden für ein oder mehrere Felder in einer Sammlung erstellt und ermöglichen es Couchbase, die benötigten Dokumente schneller zu finden, als es ohne Indizes der Fall wäre.
Um einen Index in SQL++ zu erstellen, wird die CREATE INDEX-Anweisung verwendet. Die CREATE INDEX-Anweisung benötigt zwei Argumente:
Indexname
Liste der Felder, für die der Index erstellt wird
Die folgende Abfrage erstellt beispielsweise einen Index für das Titelfeld der Kurskollektion:
CREATE INDEX course_index ON hs.nosql.courses (title);
Indizes können geordnet oder ungeordnet sein. Geordnete Indizes ermöglichen es Couchbase, in sortierter Reihenfolge nach relevanten Dokumenten zu suchen, was sortierte Abfragen beschleunigen kann. Ungeordnete Indizes verhindern, dass Couchbase die benötigten Dokumente in sortierter Reihenfolge durchsucht, sie können jedoch Abfragen beschleunigen, die keine Sortierung erfordern.
Um einen geordneten Index zu erstellen, ist die Option ORDER BY in der CREATE INDEX-Anweisung anzugeben:
CREATE INDEX course_index ON hs.nosql.courses (title ORDER BY title);
Diese Abfrage erstellt einen course_index-Index für das Titelfeld der Kurskollektion, sortiert in aufsteigender Reihenfolge.
Um Abfragen zu beschleunigen, bei denen Kurse nach Titel und Credits ausgewählt werden, kann ein geordneter Index für die Felder „title“ und „credits“ der Kurskollektion erstellt werden:
CREATE INDEX course_index ON hs.nosql.courses (title, credits ORDER BY title, credits);