Встречается на собеседованиях • сегодня

Как распределены данные в БД при использовании индекса в PostgreSQL

В PostgreSQL индексы ускоряют поиск данных, храня их в упорядоченном виде (B-дерево, Hash, GiST и др.).

  • B-дерево (по умолчанию):
    Данные сортируются по ключу индекса, что позволяет быстро находить значения за O(log n).
    sql
    CREATE INDEX idx_name ON users(name);  -- Создает B-дерево для поля name
  • Hash-индекс:
    Хранит хеш-значения ключей, идеален для точного поиска (=), но не поддерживает сортировку.

    sql
    CREATE INDEX idx_hash ON users USING HASH(email);
  • GiST/GIN:
    Для сложных типов (геоданные, JSON, полнотекстовый поиск).

Как данные распределены?
Индекс хранит копию ключевых полей + ссылки на строки (TID). Сами данные остаются в таблице (куче), но индекс ускоряет доступ к ним.

Важно:

  • Индексы замедляют вставку/обновление (нужно обновлять и таблицу, и индекс).
  • Планировщик PostgreSQL решает, использовать ли индекс (зависит от селективности запроса).
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы