© Anton Dolganin 2025
Выглядит разумно — добавить индекс на поле is_active. Но в PostgreSQL это часто не ускоряет, а замедляет.
Почему так?
BOOLEAN всего три значения: true, false, NULL.
Если распределение значений близко к 50/50 — индекс почти бесполезен. Планировщик чаще выберет Seq Scan, чем использование B-tree.
Индекс эффективен, если:
Варианты:
CREATE INDEX idx_active_false ON users (id) WHERE is_active = false;
© Anton Dolganin 2025