Назад к вопросам
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;