Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про Postgres: index, postgres, sql

Как работает индекс в Postgres и чем отличается B-Tree от GIN?

Проверяет понимание внутренней работы индексов и умение выбирать их под разные задачи.

Короткий ответ

B-Tree — индекс общего назначения для точных сравнений и диапазонов. GIN — индекс для полнотекстового поиска и массивов. Выбор индекса зависит от типа запросов.

Длинный ответ

B-Tree — сбалансированное дерево, хорошо работает для =, <, >, BETWEEN, ORDER BY. Это дефолтный индекс.

GIN (Generalized Inverted Index) хранит множество значений на строку. Подходит для поиска по массивам, JSONB, полнотекстовому поиску.

-- B-Tree
CREATE INDEX idx_orders_date ON orders(created_at);

-- GIN для jsonb
CREATE INDEX idx_orders_tags ON orders USING gin(tags jsonb_path_ops);

Вывод: B-Tree — универсальный индекс для большинства случаев. GIN — специнструмент для поиска внутри структурированных данных.

Уровень

  • Рейтинг:

    4

  • Сложность:

    7

Навыки

  • Postgres

    Postgres

Ключевые слова

#index

#postgres

#sql

Подпишись на Golang Developer в телеграм