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

Зачем нужны индексы в БД

Индексы — это специальные структуры данных, которые ускоряют поиск, сортировку и соединение таблиц, но замедляют операции записи (INSERT, UPDATE, DELETE).


Зачем они нужны?

  1. - Ускорение поиска (WHERE)
    Без индекса база данных перебирает все строки (полное сканирование). С индексом — находит нужные данные мгновенно, как по оглавлению в книге.
  2. - Ускорение сортировки (ORDER BY)
    Индексы хранят данные в отсортированном виде, что ускоряет запросы с сортировкой.
  3. - Ускорение соединений (JOIN)
    Индексы на внешних ключах (foreign key) ускоряют связывание таблиц.
  4. - Гарантия уникальности (UNIQUE INDEX)
    Запрещают дублирование значений в столбце (например, уникальный email пользователя).

Когда индексы не нужны?

  • - На маленьких таблицах (выгода минимальна).
  • - На столбцах с низкой селективностью (например, пол "муж/жен").
  • - На столбцах, которые часто обновляются (индексы замедляют запись).

Пример на SQL

text
-- Создаём индекс для ускорения поиска по email
CREATE INDEX idx_users_email ON users(email);

-- Теперь этот запрос будет работать быстрее
SELECT * FROM users WHERE email = 'test@example.com';

Вывод: Индексы — это компромисс между скоростью чтения и записи. Используйте их осознанно, где поиск важнее частоты обновлений!

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