PostgreSQL поддерживает B-tree, Hash, GiST, SP-GiST, GIN и BRIN. B-tree применим к равенству и диапазонам, Hash — к равенству. CLUSTER физически переупорядочивает таблицу, но не поддерживает этот порядок постоянно.
Какие индексы PostgreSQL вы знаете; чем B-tree отличается от hash, что такое кластерный и некластерный индекс и есть ли кластерный индекс в PostgreSQL?
PostgreSQL поддерживает B-tree, Hash, GiST, SP-GiST, GIN и BRIN. B-tree применим к равенству и диапазонам, Hash — к равенству. CLUSTER физически переупорядочивает таблицу, но не поддерживает этот порядок постоянно.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
PostgreSQL поддерживает B-tree, Hash, GiST, SP-GiST, GIN и BRIN. B-tree применим к равенству и диапазонам, Hash — к равенству. CLUSTER физически переупорядочивает таблицу, но не поддерживает этот порядок постоянно.
B-tree также может помочь ORDER BY; специализированные типы индексов выбирают по операторам и данным. Сам по себе primary key не превращает таблицу PostgreSQL в постоянно кластеризованный B-tree.
В терминологии других СУБД кластерный индекс организует хранение самих строк по ключу, а некластерный хранится отдельно. В PostgreSQL таблица и обычные индексы раздельны. Команда CLUSTER выполняет разовую реорганизацию по выбранному индексу; последующие вставки не обязаны сохранять её порядок, а операция требует блокировки.
Источник: www.postgresql.org.