PostgreSQL-indexen versnellen SQL-query's door zoekacties, filters en joins te versnellen. Hier leest u hoe u een index in PostgreSQL maakt om databasequery's te versnellen, met behulp van de PostgreSQL CREATE INDEX-instructie.
Hoe maak je een index in PostgreSQL
Hier zijn de stappen om een index te maken in PostgreSQL met behulp van de PostgreSQL CREATE INDEX-instructie. Stel dat u de volgende tabel heeft
CREATE TABLE orders(
order_id INT PRIMARY KEY,
product_id INT NOT NULL,
sale INT NOT NULL,
product_name VARCHAR(10)
);
Index toevoegen aan kolom in tabel
Stel dat u een index voor een kolom of reeks kolommen wilt toevoegen en gebruik vervolgens de instructie CREATE INDEX. Hier is de syntaxis van de CREATE INDEX-instructie
CREATE [UNIQUE] INDEX [CONCURRENTLY] index_name ON table_name
[USING METHOD](column_list)
In de bovenstaande query specificeren we de indexnaam na CREATE INDEX, de tabel waarvoor u een index moet maken en een lijst met kolommen die moeten worden opgenomen in indexering.
U kunt optioneel het trefwoord UNIQUE opgeven om ervoor te zorgen dat uw index alleen unieke waarden bevat
PostgreSQL ondersteunt verschillende indexeringsmethoden zoals btree
, hash
, gist
, spgist
, gin
, en brin
die u kunt opgeven tijdens het maken van een index.
Standaard gebruikt PostgreSQL btree-indexen.
Hier is een voorbeeld om een nieuwe index toe te voegen voor kolom product_name in de bovenstaande bestellingen tafel
CREATE INDEX prod_id_index ON orders (product_id);
Hier leest u hoe u een index maakt met meerdere kolommen
CREATE INDEX prod_id_index ON orders (product_id, order_id);
Hier leest u hoe u een index maakt met behulp van de hash-methode
CREATE INDEX prod_id_index ON orders using hash(product_id, order_id);
Hier leest u hoe u een unieke index maakt om dubbele waarden te voorkomen
CREATE UNIQUE INDEX prod_id_index ON orders (product_id);
Met PostgreSQL kunt u ook een gedeeltelijke index maken met behulp van de WHERE-clausule, waarbij alleen overeenkomende waarden worden geïndexeerd
CREATE INDEX prod_id_index ON orders (product_id) where status=1;
In de bovenstaande zoekopdracht, alleen die prod_id worden geïndexeerd waar status=1
Hopelijk helpt het bovenstaande artikel u bij het maken van een index in PostgreSQL
Ubiq maakt het gemakkelijk om gegevens binnen enkele minuten te visualiseren en in realtime dashboards te controleren. Probeer het vandaag nog!