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

Какие применял виды индексов в БД

В PostgreSQL использовал B-деревья (стандартный индекс), Hash (для точных совпадений), GiST (геоданные, полнотекстовый поиск), GIN (составные данные, массивы, JSON).

Пример создания индексов:

sql
-- B-tree (по умолчанию)
CREATE INDEX idx_users_email ON users(email);

-- Hash (только для =)
CREATE INDEX idx_users_id_hash ON users USING HASH(id);

-- GIN для JSON
CREATE INDEX idx_profile_tags ON profiles USING GIN((data->'tags'));

-- GiST для геоданных
CREATE INDEX idx_places_location ON places USING GIST(location);

text

**Нюансы:**  
- B-дерево универсально, поддерживает сортировку и диапазоны.  
- Hash быстрее для `=`, но не поддерживает операции сравнения.  
- GIN/GIST требуют больше ресурсов, но незаменимы для специализированных типов данных.  

Выбор зависит от запросов: для `WHERE x > 10` — B-tree, для `WHERE json_field @> '{"tag": "python"}'` — GIN.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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