Что такое индекс в БД

«Что такое индекс в БД» — вопрос из категории Базы данных, который задают на 46% собеседований Системный Аналитик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Индекс — это структура данных, ускоряющая поиск и сортировку в таблицах БД. Он работает как оглавление в книге, позволяя СУБД быстро находить строки без полного сканирования таблицы.

Типы индексов:

  • B-tree (балансированное дерево) — стандартный индекс для равенства и диапазонов.
  • Hash — только для точного совпадения (например, WHERE id = 5).
  • Составной — по нескольким столбцам.

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

-- Создание индекса для столбца email
CREATE INDEX idx_email ON users(email);

-- Составной индекс
CREATE INDEX idx_name_age ON employees(last_name, age);

Плюсы:

  • Ускорение SELECT, JOIN, WHERE, ORDER BY.
  • Поддержка уникальности (UNIQUE INDEX).

Минусы:

  • Замедление INSERT/UPDATE/DELETE (индекс нужно перестраивать).
  • Дополнительное место на диске.

Важно: Индексы стоит добавлять на часто запрашиваемые столбцы, участвующие в условиях поиска. Избыточные индексы ухудшают производительность.

Видео-ответы