Какие индексы 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 физически переупорядочивает таблицу, но не поддерживает этот порядок постоянно.

Подробный разбор

Ответ с пояснениями

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.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее