Если таблица огромная, а фильтр почти всегда одинаковый — зачем индексировать всё подряд?
Вместо обычного индекса создаём частичный (partial index):
CREATE INDEX ON orders (user_id)
WHERE status = 'pending';
Так индекс строится только для строк, где
status = 'pending'. Остальные записи не попадают, база хранит меньше, ищет быстрее.Теперь этот запрос:
SELECT * FROM orders
WHERE status = 'pending' AND user_id = 42;
🔥 Применяйте
partial index для активных заказов, незавершённых задач, непрочитанных сообщений. Там, где фильтр стабильно повторяется.➡️ SQL Ready | #совет
