Зачем нужна индексация

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

Ответ

Индексация ускоряет поиск данных в БД, уменьшая количество операций ввода-вывода. Индекс — это структура (например, B-дерево), хранящая значения определённых столбцов с указателями на соответствующие строки.

Пример:

-- Создание индекса
CREATE INDEX idx_user_email ON users(email);

-- Запрос с использованием индекса
SELECT * FROM users WHERE email = 'test@example.com';

Когда использовать:

  • Частые поиски по условию (WHERE, JOIN).
  • Уникальные или часто фильтруемые поля.

Осторожно:

  • Индексы замедляют вставку/обновление (требуется перестройка индекса).
  • Избыточные индексы увеличивают объём хранилища.

Оптимальный выбор индексов — баланс между скоростью чтения и затратами на запись.