Какой индекс поможет фильтру статуса и сортировке

Индекс по status помогает отбору, но не обязательно устраняет сортировку. Кандидат — составной индекс (status, created_at DESC), позволяющий читать подходящие строки в нужном порядке.

Короткий ответ

Что ответить на собеседовании

Индекс по status помогает отбору, но не обязательно устраняет сортировку. Кандидат — составной индекс (status, created_at DESC), позволяющий читать подходящие строки в нужном порядке.

Подробный разбор

Ответ с пояснениями

Условие

PostgreSQL-запрос: SELECT id, created_at FROM orders WHERE status = 'paid' ORDER BY created_at DESC LIMIT 50. Таблица большая. Почему индекс только по status может быть недостаточен?

Ответ

Индекс по status помогает отбору, но не обязательно устраняет сортировку. Кандидат — составной индекс (status, created_at DESC), позволяющий читать подходящие строки в нужном порядке.

Если paid занимает большую долю таблицы, одиночный индекс по статусу может быть малоэффективен. Для часто используемого фиксированного условия возможен частичный индекс по created_at WHERE status='paid'. Выбор подтвердите планом и нагрузкой на запись. При необходимости стабильного порядка добавьте ID в сортировку и соответствующий индекс.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее