Какие бывают типы индексов?

Middle
1.1k просмотров
AFK Offer AI

В PostgreSQL несколько типов индексов, каждый для своих задач:

B-tree (по умолчанию) — для сравнений =, <, >, BETWEEN, ORDER BY. Покрывает 90% случаев.

Hash — только для =, чуть быстрее B-tree для точного совпадения, но не поддерживает сортировку.

GIN (Generalized Inverted Index) — для полнотекстового поиска, JSONB, массивов. Ищет вхождения элемента в коллекцию.

GiST (Generalized Search Tree) — для геоданных (PostGIS), диапазонов, нечёткого поиска.

BRIN (Block Range Index) — для огромных таблиц с естественной сортировкой (логи по дате). Очень компактный.

Ещё бывают составные (multi-column), частичные (WHERE condition) и покрывающие (INCLUDE) индексы.

Следующий вопрос

Protocol Buffers vs JSON — производительность?