> Каковы преимущества и недостатки индексов в базе данных (Go)

Уровень: senior · Роль: backend · Категория: Технические вопросы

Компании: InDrive, Lamoda

Стек: Go

> Пример ответа

Индексы в базе данных - это структуры, ускоряющие поиск и сортировку записей, но за счёт дополнительных затрат. Основные преимущества: значительное ускорение операций SELECT (особенно с WHERE, JOIN, ORDER BY), обеспечение уникальности данных (уникальные индексы) и оптимизация запросов с агрегациями. Например, в Go при работе с PostgreSQL через database/sql индекс на поле user_id в таблице заказов сократит время выборки с O(n) до O(log n).

Недостатки: замедление операций INSERT, UPDATE и DELETE (индекс нужно перестраивать), потребление дискового пространства (особенно для составных индексов), а также риск ухудшения производительности при неправильном выборе (например, индексы на низкоселективных колонках вроде gender). В Go-приложениях, где важна скорость записи (логи, события), избыточные индексы могут стать узким местом. Рекомендуется профилировать запросы с EXPLAIN ANALYZE и добавлять индексы только под реальные паттерны доступа

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью