PostgreSQL-indekser fremskynder SQL-forespørgsler ved at fremskynde opslag, filtre og joinforbindelser. Sådan opretter du indeks i PostgreSQL for at fremskynde databaseforespørgsler ved hjælp af PostgreSQL CREATE INDEX-sætning.
Sådan opretter du indeks i PostgreSQL
Her er trinene til at oprette indeks i PostgreSQL ved hjælp af PostgreSQL CREATE INDEX-sætning. Lad os sige, at du har følgende tabel
CREATE TABLE orders(
order_id INT PRIMARY KEY,
product_id INT NOT NULL,
sale INT NOT NULL,
product_name VARCHAR(10)
);
Sådan tilføjer du indeks til kolonne i tabel
Lad os sige, at du vil tilføje indeks for kolonne eller sæt af kolonner, og brug derefter CREATE INDEX-sætning. Her er syntaksen for CREATE INDEX-sætningen
CREATE [UNIQUE] INDEX [CONCURRENTLY] index_name ON table_name
[USING METHOD](column_list)
I ovenstående forespørgsel angiver vi indeksnavnet efter CREATE INDEX, den tabel, som du skal oprette indeks for, og en liste over kolonner, der skal inkluderes i indeksering.
Du kan valgfrit angive UNIQUE søgeord for at sikre, at dit indeks kun indeholder unikke værdier
PostgreSQL understøtter forskellige indekseringsmetoder såsom btree
, hash
, gist
, spgist
, gin
og brin
som du kan angive under oprettelse af indeks.
Som standard bruger PostgreSQL btree-indekser.
Her er et eksempel på at tilføje nyt indeks for kolonne produktnavn i ovenstående ordrer bord
CREATE INDEX prod_id_index ON orders (product_id);
Sådan opretter du indeks ved hjælp af flere kolonner
CREATE INDEX prod_id_index ON orders (product_id, order_id);
Sådan opretter du indeks ved hjælp af hash-metoden
CREATE INDEX prod_id_index ON orders using hash(product_id, order_id);
Sådan opretter du et unikt indeks for at undgå duplikerede værdier
CREATE UNIQUE INDEX prod_id_index ON orders (product_id);
PostgreSQL giver dig også mulighed for at oprette delvist indeks ved hjælp af WHERE-sætning, hvor kun matchende værdier indekseres
CREATE INDEX prod_id_index ON orders (product_id) where status=1;
I ovenstående forespørgsel er kun de prod_id er indekseret hvor status=1
Forhåbentlig vil ovenstående artikel hjælpe dig med at oprette indeks i PostgreSQL
Ubiq gør det nemt at visualisere data på få minutter og overvåge i dashboards i realtid. Prøv det i dag!