Sobes.tech
Middle+

Co lze říci o optimalitě plánu dotazu?

sobes.tech AI

Odpověď od 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.

Итог: текущий план не оптимален, можно улучшить индекс для ускорения запроса.