Gli indici PostgreSQL velocizzano le query SQL velocizzando ricerche, filtri e join. Ecco come creare un indice in PostgreSQL per velocizzare le query del database, utilizzando l'istruzione CREATE INDEX di PostgreSQL.
Come creare un indice in PostgreSQL
Di seguito sono riportati i passaggi per creare un indice in PostgreSQL utilizzando l'istruzione CREATE INDEX di PostgreSQL. Supponiamo che tu abbia la seguente tabella
CREATE TABLE orders(
order_id INT PRIMARY KEY,
product_id INT NOT NULL,
sale INT NOT NULL,
product_name VARCHAR(10)
);
Come aggiungere un indice alla colonna nella tabella
Supponiamo di voler aggiungere l'indice per la colonna o il set di colonne, quindi utilizzare l'istruzione CREATE INDEX. Ecco la sintassi dell'istruzione CREATE INDEX
CREATE [UNIQUE] INDEX [CONCURRENTLY] index_name ON table_name
[USING METHOD](column_list)
Nella query precedente, specifichiamo il nome dell'indice dopo CREATE INDEX, la tabella per la quale è necessario creare l'indice e l'elenco delle colonne da includere nell'indicizzazione.
Facoltativamente, puoi specificare la parola chiave UNIQUE per assicurarti che il tuo indice contenga solo valori univoci
PostgreSQL supporta vari metodi di indicizzazione come btree
, hash
, gist
, spgist
, gin
e brin
che puoi specificare durante la creazione dell'indice.
Per impostazione predefinita, PostgreSQL utilizza gli indici btree.
Ecco un esempio per aggiungere un nuovo indice per la colonna nome_prodotto negli ordini precedenti tabella
CREATE INDEX prod_id_index ON orders (product_id);
Ecco come creare un indice utilizzando più colonne
CREATE INDEX prod_id_index ON orders (product_id, order_id);
Ecco come creare un indice utilizzando il metodo hash
CREATE INDEX prod_id_index ON orders using hash(product_id, order_id);
Ecco come creare un indice univoco per evitare valori duplicati
CREATE UNIQUE INDEX prod_id_index ON orders (product_id);
PostgreSQL consente anche di creare un indice parziale utilizzando la clausola WHERE, in cui vengono indicizzati solo i valori corrispondenti
CREATE INDEX prod_id_index ON orders (product_id) where status=1;
Nella query precedente, solo quelli prod_id sono indicizzati dove status=1
Si spera che l'articolo sopra ti aiuti a creare un indice in PostgreSQL
Ubiq semplifica la visualizzazione dei dati in pochi minuti e il monitoraggio in dashboard in tempo reale. Provalo oggi!