Postgres supporta i tipi di indicizzazione B-tree, R-tree, Hash, GiST e GIN. L'indicizzazione dell'albero B è la più comune e si adatta agli scenari più comuni. Questa è la sintassi:
CREATE INDEX idex_name ON table_name USING btree(column1, column2);
Ecco il createindex documentazione e qui ci sono maggiori informazioni su diversi indextypes in postgres.
Il tipo di indice da utilizzare dipende dai tipi di operazioni che si desidera eseguire. Se vuoi semplicemente controllare l'uguaglianza, l'indice hash è il migliore. Per le operazioni più comuni (ad es. confronto, corrispondenza di modelli) dovrebbe essere utilizzato B-tree. Personalmente non ho mai usato l'indicizzazione GiST o GIN. QUALCHE Guru là fuori?
La documentazione descrive tutti questi tipi. Possono aiutarti meglio di me :)
Spero che questo aiuti.