Встречается на собеседованиях • сегодня
На какие констрейнты PostgreSQL создаёт индексы
PostgreSQL автоматически создаёт индексы для следующих ограничений (constraints):
- PRIMARY KEY — создаёт уникальный B-дерево индекс для столбца(ов), помеченных как первичный ключ.
- UNIQUE — аналогично PRIMARY KEY, но для уникальных ограничений (может включать NULL значения).
- 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-дерево).

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы