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

Почему не стоит делать индекс у всех столбцов в таблице в БД

Создание индексов для всех столбцов в таблице может привести к нескольким проблемам:

  1. Замедление операций записи – при вставке, обновлении или удалении данных индексы также обновляются, что увеличивает нагрузку.
  2. Увеличение размера БД – индексы занимают дополнительное место на диске.
  3. Избыточность – не все столбцы используются в запросах (WHERE, JOIN, ORDER BY), поэтому индексы для них бесполезны.
  4. Оптимизатор запросов может запутаться – слишком много индексов усложняют выбор оптимального плана выполнения.

Пример:

sql
-- Плохо: индексы на все столбцы
CREATE TABLE users (
    id INT PRIMARY KEY,
    name VARCHAR(100) INDEX,
    email VARCHAR(100) INDEX,
    age INT INDEX,
    created_at TIMESTAMP INDEX
);

-- Лучше: индексировать только часто используемые поля
CREATE TABLE users (
    id INT PRIMARY KEY,
    name VARCHAR(100),
    email VARCHAR(100) INDEX,  -- часто ищут по email
    age INT,
    created_at TIMESTAMP INDEX -- часто сортируют по дате
);

Оптимально добавлять индексы только для столбцов, участвующих в условиях фильтрации, сортировки или соединения.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

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