Middle+
Cosa si può dire sull'ottimizzazione del piano della query?
sobes.tech AI
Risposta dell'AI
План запроса показывает, что используется последовательное сканирование (Seq Scan) таблицы bank_users с фильтром по status = 2, а затем сортировка по created_at_date_time.
Хотя есть индекс ix_created_at_date_time_status на (created_at_date_time, status), он не используется. Причина в порядке колонок в индексе и условиях запроса:
- Индекс построен по (created_at_date_time, status), то есть сначала сортировка по created_at_date_time, потом по status.
- В WHERE фильтруется по status, который во второй позиции индекса, что неэффективно для поиска.
Для оптимизации стоит создать индекс, где status будет первым столбцом, например:
CREATE INDEX ix_status_created_at ON bank_users (status, created_at_date_time);
Тогда планировщик сможет использовать индекс для быстрого поиска по status и сразу получить данные в отсортированном по created_at_date_time порядке, что позволит избежать сортировки и Seq Scan.
Итог: текущий план не оптимален, можно улучшить индекс для ускорения запроса.