Sobes.tech
Назад к вопросам
Senior
3

Для булевого поля — стоит ли добавлять индекс?

Компании, где спрашивали
А7

Ответ от нейросети

sobes.tech AI

Добавлять индекс на булево поле обычно неэффективно, особенно если значения распределены примерно поровну (50/50). Индексы полезны, когда они существенно сокращают количество строк для выборки.

Если же булево поле очень редко принимает одно из значений (например, 1% true и 99% false), индекс может помочь при фильтрации по редкому значению.

В целом:

  • Не стоит создавать индекс на булево поле без анализа распределения данных и частоты запросов.
  • Лучше рассмотреть комбинированные индексы с другими полями, если фильтрация по булевому полю часто идет вместе с другими условиями.

Пример в Go с использованием SQL:

// Не создаём индекс на поле is_active, если оно примерно 50/50
// Но если is_active = true встречается редко, можно создать индекс:
CREATE INDEX idx_users_is_active_true ON users (id) WHERE is_active = true;