Какие знаешь индексы в PostgreSQL
PostgreSQL поддерживает несколько типов индексов, каждый из которых оптимизирован под определённые сценарии:
-
B-tree — стандартный индекс для большинства операций (сравнение, сортировка, диапазоны).
sqlCREATE INDEX idx_name ON users(name); -
Hash — быстрый поиск по точному совпадению (только
=).sqlCREATE INDEX idx_email_hash ON users USING HASH(email);
-
GIN (Generalized Inverted Index) — для сложных типов данных (JSON, массивы, полнотекстовый поиск).
sqlCREATE INDEX idx_tags_gin ON posts USING GIN(tags); -
GiST (Generalized Search Tree) — для геоданных, полнотекстового поиска и других сложных структур.
sqlCREATE INDEX idx_location_gist ON shops USING GiST(location); -
SP-GiST (Space-Partitioned GiST) — для нерегулярных структур (IP-адреса, геоданные).
sqlCREATE INDEX idx_ip_spgist ON logs USING SPGiST(ip_address); -
BRIN (Block Range INdex) — для больших таблиц с естественной сортировкой (например, временные данные).
sqlCREATE INDEX idx_created_brin ON orders USING BRIN(created_at);
Выбор индекса зависит от типа данных и запросов. Например, B-tree подходит для большинства случаев, а GIN — для работы с массивами или JSON.

офферы быстрее!
Следующий вопрос
Это единственный вопрос по вашему фильтру