Postgres podporuje typy indexování B-strom, R-strom, Hash, GiST a GIN. Indexování B-stromu je nejběžnější a hodí se pro většinu běžných scénářů. Toto je syntaxe:
CREATE INDEX idex_name ON table_name USING btree(column1, column2);
Zde je createindex dokumentaci a zde je více informací o různých typy indexů v postgresu.
Jaký typ indexu byste měli použít, závisí na tom, jaké typy operací chcete provádět. Pokud chcete pouze kontrolu rovnosti, pak je nejlepší hash index. Pro většinu běžných operací (např. porovnávání, porovnávání vzorů) by měl být použit B-strom. Osobně jsem nikdy nepoužíval indexování GiST nebo GIN. Je tam nějaký Guru?
Dokumentace popisuje všechny tyto typy. Mohou vám pomoci lépe než já :)
Doufám, že to pomůže.