Database Reference
In-Depth Information
PostgreSQL erzeugt automatisch einen Index über den Primärschlüssel. Da-
bei ist der Primärschlüssel der Schlüssel und der Wert zeigt auf die entspre-
chende Zeile auf der Festplatte, wie in der Grafik unten zu sehen. Die Verwen-
dung des Schlüsselwortes UNIQUE ist eine weitere Möglichkeit, einen Index für
eine Tabellenspalte zu erzwingen.
SELECT * FROM events WHERE event_id =
2 ;
"events.id" hash Index
"events" Table
1
LARP Club | 2 | 1
2
April Fools Day | | 2
3
Christmas Day | | 3
Sie können explizit einen Index mit dem Befehl CREATE INDEX erzeugen. Dabei
muss jeder Wert eindeutig sein (wie eine Hashtabelle oder eine Map).
CREATE INDEX events _ title
ON events USING hash (title);
Für Kleiner-als/Größer-als/Gleich-Vergleiche wollen wir einen Index, der et-
was flexibler ist als ein einfacher Hash, etwa ein B-Tree (siehe Abbildung 3,
Ein B-Tree-Index eignet sich für bereichsorientierte Queries. , auf Seite 22).
Stellen Sie sich eine Query vor, die alle Events nach dem ersten April fin-
den soll.
SELECT *
FROM events
WHERE starts >= '2012-04-01' ;
Dafür ist ein Baum die perfekte Datenstruktur. Um einen B-Tree-Index für
die starts -Spalte anzulegen, verwenden wir Folgendes:
CREATE INDEX events _ starts
ON events USING btree (starts);
Nun können wir eine bereichsorientierte Abfrage über die Datumsangaben
durchführen, ohne die ganze Tabelle durchsuchen zu müssen. Das macht bei
Millionen (oder Milliarden) von Datensätzen einen gewaltigen Unterschied.
Search WWH ::




Custom Search