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

На какие констрейнты PostgreSQL создаёт индексы

PostgreSQL автоматически создаёт индексы для следующих ограничений (constraints):

  1. PRIMARY KEY — создаёт уникальный B-дерево индекс для столбца(ов), помеченных как первичный ключ.
  2. UNIQUE — аналогично PRIMARY KEY, но для уникальных ограничений (может включать NULL значения).
  3. EXCLUDE — создаёт GiST, SP-GiST или другой индекс, в зависимости от оператора, указанного в ограничении.

Пример с кодом:

sql
-- PRIMARY KEY (автоматически создаст индекс)
CREATE TABLE users (
    id SERIAL PRIMARY KEY,  -- индекс создан
    email VARCHAR(255) UNIQUE  -- ещё один индекс для UNIQUE
);

-- EXCLUDE с GiST индексом
CREATE TABLE reservations (
    room_id INT,
    period TSTZRANGE,
    EXCLUDE USING GIST (room_id WITH =, period WITH &&)
);

Примечание:

  • Индексы для FOREIGN KEY не создаются автоматически — их нужно добавлять вручную, если требуется оптимизация JOIN или проверок.
  • Тип индекса зависит от ограничения (например, EXCLUDE может использовать GiST, а UNIQUE — B-дерево).
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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