INDEX in Postgres?

8

Was macht der INDEX-Ausdruck? Ein Beispiel am Ende:

%Vor%     
Léo Léopold Hertz 준영 30.07.2009, 22:24
quelle

1 Antwort

10

Ein Index ist eine Datenbankstruktur, die den Zugriff beschleunigen kann zu einzelnen Zeilen der Datenbank, wenn basierend auf den Feldern im Index gesucht wird.

In Ihrem Beispiel erstellt die Anweisung CREATE INDEX einen Index mit dem Namen tags_tag in der Tabelle tags mit der Spalte tag . Wenn Sie anhand des Feldes tag nach Zeilen aus der Tabelle suchen möchten, verwendet die Datenbank möglicherweise den Index, um die Zeile effizienter nachzuschlagen. Ohne einen Index muss die Datenbank möglicherweise auf einen vollständigen Scan der Tabelle zurückgreifen, der viel länger dauern kann (abhängig von vielen Faktoren, wie Größe der Tabelle, Verteilung der Werte, genaue Abfragekriterien). Verschiedene Datenbanken unterstützen auch verschiedene Arten von Indizes, mit denen auf unterschiedliche Weise nach Daten gesucht werden kann.

Es gibt auch einen Nachteil von Indizes: Für jeden Index sinken die Schreibgeschwindigkeiten für diese Tabelle. Wenn Sie eine Zeile einfügen, bedeutet ein Index, dass zusätzlich zur Datenbank, die in die Zeile geschrieben wird, auch der Index aktualisiert werden muss.

Die Entscheidung, auf welchen Spalten ein Index platziert werden soll, kann knifflig sein. Wie immer sind Benchmarks oder reale Abfragen mit realen Daten die genaueste Methode zur Leistungsmessung. Im Allgemeinen werden Indizes für Spalten gewünscht, nach denen Sie suchen. Wenn Sie also eine Zeile nach tag suchen wollen, ist es definitiv sinnvoll, dort einen Index zu setzen. Aber wenn Sie ein Adressbuch haben, müssen Sie (wahrscheinlich) nicht nach Straße, Postleitzahl oder Telefonnummer suchen, so dass es sich nicht lohnt, die Schreibleistung zu erreichen.

Ihre Primärschlüsselspalte (n) haben fast immer einen Index, der automatisch von der Datenbank generiert wird. Und wenn Sie die Werte einer bestimmten Spalte eindeutig erhalten möchten, kann ein UNIQUE INDEX erstellt werden, um dies zu erzwingen.

Dies SO-Frage fragt nach Faustregeln für Datenbankindizes, die nützlich sein können.

    
Adam Batkin 30.07.2009, 22:26
quelle

Tags und Links