Indizes sind spezielle Suchtabellen, die von Datenbankjagdmotoren verwendet werden, um Abfrageergebnisse zu beschleunigen. Ein Index ist ein Verweis auf die Informationen in einer Tabelle. Wenn beispielsweise die Namen in einem Kontaktbuch nicht alphabetisiert sind, müssten Sie jede Zeile hinuntergehen und jeden Namen durchsuchen, bevor Sie die spezifische Telefonnummer erreichen, nach der Sie suchen. Ein Index beschleunigt die SELECT -Befehle aus und wo Phrasen die Dateneingabe in den Aktualisierung und Einfügen von Befehlen ausführen. Unabhängig davon, ob die Indizes eingefügt oder gelöscht werden, wirkt sich keine Auswirkungen auf die in der Tabelle enthaltenen Informationen aus. Die Indizes können auf die gleiche Weise spezifisch sein, wie die eindeutige Begrenzung dazu beiträgt, Replikatrekorde im Feld oder eine Reihe von Feldern zu vermeiden, für die der Index existiert.
Allgemeine Syntax
Die folgende allgemeine Syntax wird zum Erstellen von Indizes verwendet.
>> in table_name (column_name) erstellen index index_name erstellen;Öffnen Sie die Pgadmin von PostgreSQL aus der Anwendungsleiste, um an den Indizes zu arbeiten. Sie finden die unten angezeigte Option "Server". Klicken Sie mit der rechten Maustaste auf diese Option und verbinden Sie sie mit der Datenbank.
Wie Sie sehen können, ist die Datenbank "Test" in der Option "Datenbanken" aufgeführt. Wenn Sie keine haben, klicken Sie mit der rechten Maustaste "Datenbanken", navigieren Sie zur Option "Erstellen" und nennen Sie die Datenbank nach Ihren Vorlieben.
Erweitern Sie die Option "Schemas", und Sie finden die dort aufgeführte Option "Tabellen". Wenn Sie keine haben, klicken Sie mit der rechten Maustaste darauf, navigieren Sie zu "Erstellen" und klicken Sie auf die Option "Tabelle", um eine neue Tabelle zu erstellen. Da wir bereits die Tabelle 'EMP' erstellt haben, können Sie sie in der Liste sehen.
Probieren Sie die Abfrage im Abfrageditor aus, um die Datensätze der Tabelle "EMP" abzurufen, wie unten gezeigt.
>> aus der Öffentlichkeit auswählen.EMP Order by "id" ASC;Die folgenden Daten befinden sich in der Tabelle "EMP".
Erstellen Sie Einspaltindizes
Erweitern Sie die Tabelle "EMP", um verschiedene Kategorien zu finden, e.G., Spalten, Einschränkungen, Indizes usw. Klicken Sie mit der rechten Maustaste auf "Indizes", navigieren Sie zur Option "Erstellen" und klicken Sie auf "Index", um einen neuen Index zu erstellen.
Erstellen Sie einen Index für die angegebene Tabelle "EMP" oder eine ereignete Anzeige unter Verwendung des Index -Dialogfelds. Hier gibt es zwei Registerkarten: 'Allgemeines' & 'Definition.'In der Registerkarte "Allgemeines" fügen Sie einen bestimmten Titel für den neuen Index im Feld "Name" ein. Wählen Sie den "Tablespace" aus, unter dem der neue Index mit der Dropdown-Liste neben 'Tablespace gespeichert wird."Wie im" Kommentarbereich "machen Sie hier Indexkommentare. Um diesen Prozess zu beginnen, navigieren Sie zur Registerkarte "Definition".
Geben Sie hier die "Zugriffsmethode" an, indem Sie den Indextyp auswählen. Um Ihren Index als "eindeutig" zu erstellen, sind dort einige andere Optionen aufgeführt. Tippen Sie im Bereich "Spalten" auf das Zeichen "+" und fügen Sie die zum Indexierung zu verwendenden Spaltennamen hinzu. Wie Sie sehen können, haben wir die Indexierung nur auf die Spalte "Telefon" angewendet. Wählen Sie zunächst den SQL -Abschnitt aus.
Die Registerkarte SQL zeigt den Befehl SQL an, der von Ihren Eingaben im gesamten Indexdialog erstellt wurde. Klicken Sie auf die Schaltfläche "Speichern", um den Index zu erstellen.
Gehen Sie erneut zur Option "Tabellen" und navigieren Sie zur "EMP" -Tabelle. Aktualisieren Sie die Option "Indexes" und Sie werden den neu erstellten Index "INDEX_ON_PONE" finden, der darin aufgeführt ist.
Jetzt werden wir den Befehl Erklärung auswählen, um die Ergebnisse für die Indizes mit der WHERE -Klausel zu überprüfen. Dies führt zu der folgenden Ausgabe, in der der SEQ -Scan auf EMP heißt.„Sie fragen sich vielleicht, warum dies passiert ist, während Sie Indizes verwenden.
Grund: Der Postgres -Planer kann sich aus verschiedenen Gründen entscheiden, keinen Index zu haben. Der Stratege trifft die meiste Zeit die besten Entscheidungen, obwohl die Gründe nicht immer klar sind. Es ist in Ordnung, wenn in einigen Abfragen eine Indexsuche verwendet wird, jedoch nicht in allen. Die aus beiden Tabellen zurückgegebenen Einträge können je nach den von der Abfrage zurückgegebenen festen Werten variieren. Da dies geschieht, ist ein Sequenz -Scan fast immer schneller als ein Indexscan, was darauf hinweist.
Erstellen Sie mehrere Spaltenindizes
Öffnen Sie die Befehlszeilenschale, um Multiple-Säulen-Indizes zu erstellen, und betrachten Sie die folgende Tabelle "Student", um mit mehreren Spalten an Indizes zu arbeiten.
>> aus dem Schüler auswählen;Schreiben Sie die folgende Indexabfrage erstellen. Diese Abfrage erstellt einen Index mit dem Namen "new_index" in den Spalten "Sname" und "Alter" der "Schüler" -Tabelle.
>> erstellen index new_index auf student (sname, älter);Jetzt werden wir die Eigenschaften und Attribute des neu erstellten 'New_index' Index mit dem Befehl '\ d' auflisten. Wie Sie auf dem Bild sehen können, ist dies ein Bree-Typ-Index, der auf die Spalten "Sname" und "Alter" angewendet wurde.
>> \ d new_index;Erstellen Sie einen eindeutigen Index
Um einen eindeutigen Index zu erstellen, nehmen Sie die folgende "EMP" -Tabelle aus.
>> aus EMP auswählen;Führen Sie die eindeutige Indexabfrage erstellen in der Shell aus, gefolgt von dem Indexnamen 'EMPIND' in der Spalte 'Name' der Tabelle 'EMP'. In der Ausgabe können Sie feststellen, dass der eindeutige Index nicht auf eine Spalte mit doppelten "Namen" -Werten angewendet werden kann.
>> eindeutige Index EMPind auf EMP (Name) erstellen;Stellen Sie sicher, dass Sie den eindeutigen Index nur auf Spalten anwenden, die keine Duplikate enthalten. Für die Tabelle "EMP" können Sie annehmen, dass nur die Spalte "ID" eindeutige Werte enthält. Wir werden also einen einzigartigen Index dafür anwenden.
>> Eindeutige Index EMPind auf EMP (ID) erstellen;Das Folgende sind die Attribute des eindeutigen Index.
>> \ d empid;Drop Index
Die Drop -Anweisung wird verwendet, um einen Index aus einer Tabelle zu entfernen.
>> Drop Index Empind;Abschluss
Während die Indizes zur Verbesserung der Effizienz von Datenbanken konzipiert sind, ist es in einigen Fällen nicht möglich, einen Index zu verwenden. Bei Verwendung eines Index müssen die folgenden Regeln berücksichtigt werden: