PostgreSQL-Indizes beschleunigen SQL-Abfragen, indem sie Lookups, Filter und Verknüpfungen beschleunigen. So erstellen Sie einen Index in PostgreSQL, um Datenbankabfragen zu beschleunigen, indem Sie die PostgreSQL-Anweisung CREATE INDEX verwenden.
Wie man einen Index in PostgreSQL erstellt
Hier sind die Schritte zum Erstellen eines Index in PostgreSQL mit der PostgreSQL-Anweisung CREATE INDEX. Angenommen, Sie haben die folgende Tabelle
CREATE TABLE orders(
order_id INT PRIMARY KEY,
product_id INT NOT NULL,
sale INT NOT NULL,
product_name VARCHAR(10)
);
Wie man einen Index zu einer Spalte in einer Tabelle hinzufügt
Angenommen, Sie möchten einen Index für eine Spalte oder einen Satz von Spalten hinzufügen und dann die Anweisung CREATE INDEX verwenden. Hier ist die Syntax der CREATE INDEX-Anweisung
CREATE [UNIQUE] INDEX [CONCURRENTLY] index_name ON table_name
[USING METHOD](column_list)
In der obigen Abfrage geben wir den Indexnamen nach CREATE INDEX, die Tabelle, für die Sie einen Index erstellen müssen, und eine Liste der in die Indizierung einzuschließenden Spalten an.
Sie können optional das Schlüsselwort UNIQUE angeben, um sicherzustellen, dass Ihr Index nur eindeutige Werte enthält
PostgreSQL unterstützt verschiedene Indizierungsmethoden wie btree
, hash
, gist
, spgist
, gin
, und brin
die Sie während der Indexerstellung angeben können.
Standardmäßig verwendet PostgreSQL btree-Indizes.
Hier ist ein Beispiel zum Hinzufügen eines neuen Index für die Spalte product_name in den obigen Bestellungen Tabelle
CREATE INDEX prod_id_index ON orders (product_id);
So erstellen Sie einen Index mit mehreren Spalten
CREATE INDEX prod_id_index ON orders (product_id, order_id);
So erstellen Sie einen Index mit der Hash-Methode
CREATE INDEX prod_id_index ON orders using hash(product_id, order_id);
So erstellen Sie einen eindeutigen Index, um doppelte Werte zu vermeiden
CREATE UNIQUE INDEX prod_id_index ON orders (product_id);
PostgreSQL ermöglicht es Ihnen auch, einen Teilindex mit der WHERE-Klausel zu erstellen, wobei nur übereinstimmende Werte indiziert werden
CREATE INDEX prod_id_index ON orders (product_id) where status=1;
In der obigen Abfrage nur diese prod_id werden mit status=1
indiziert
Hoffentlich hilft Ihnen der obige Artikel beim Erstellen von Indizes in PostgreSQL
Ubiq macht es einfach, Daten innerhalb von Minuten zu visualisieren und in Echtzeit-Dashboards zu überwachen. Probieren Sie es noch heute aus!