Indeksy funkcyjne, gdzie indeks jest wynikiem funkcji, a nie wartości kolumny. Indeksy częściowe, czyli indeksy reprezentujące część tabeli, mogą zostać utworzone przez dodanie klauzuli „WHERE” na końcu CREATE INDEX. Ustawienie kolejności sortowania wartości w indeksie malejąco (DESC), lub rosnąco (ASC). W razie potrzeby PostgreSQL może przeglądać indeksy od końca. Określenie położenia wartości NULL – na początku (FIRST) lub końcu indeksu (LAST). Współbieżne budowanie i usuwanie indeksu. Od wersji 8.1 możliwe jest łączenie indeksów podczas wykonywania zapytania przy użyciu tzw. bitmap indeksowych. Od wersji 9.2 możliwe są index-only scany, dzięki temu baza wykonując zapytanie może korzystać tylko z indeksu i z niego wyciągnąć wszystkie dane potrzebne do zwrócenia. Umożliwia to szybsze zapytania, bo nie trzeba przeszukiwać pliku z danymi, a pliki z indeksami są przeważnie znacznie mniejsze.

Istnieje też możliwość zaimplementowania własnego typu indeksu, który będzie używany przez bazę danych.