Вопрос на собеседовании · Backend-разработчик
Как работает индекс в базе данных и когда он не помогает?
Короткий ответ, ключевые тезисы и ошибки, которых стоит избежать на интервью.
Индекс — отдельная структура данных, которая ускоряет поиск строк ценой дополнительного места и более дорогих операций записи. Распространённый B-tree хранит упорядоченные ключи и ссылки на строки, поэтому подходит для равенства, диапазонов и сортировки.
Оптимизатор выбирает индекс только когда ожидает, что это дешевле полного чтения таблицы. Поэтому наличие индекса не гарантирует его использование: важны селективность, статистика, форма условия и порядок колонок в составном индексе.
01 · Структура ответа
Что важно сказать интервьюеру
Начните с определения, затем объясните механизм и закончите примером из практики. Для полного ответа раскройте эти тезисы:
02 · Пример
Как объяснить на практике
Для запросов по tenant_id и created_at индекс (tenant_id, created_at) позволяет сначала сузить данные до арендатора, затем быстро прочитать нужный диапазон дат. Обратный порядок подходит другому профилю запросов.
Не заучивайте формулировку дословно. Свяжите принцип с задачей из собственного проекта — интервьюер почти наверняка попросит уточнить детали реализации и компромиссы.
03 · Ошибки
Чего избегать в ответе
04 · Углубление
Что могут спросить следом
- Чем B-tree отличается от hash-индекса?
- Что такое покрывающий индекс?
- Почему запрос не использует созданный индекс?
Практика ответа
Ответьте вслух, а не про себя
Откроем тренировку сразу на этом вопросе. Выберите грейд, сформулируйте ответ и сравните его с опорой.
Mira