Заказы конкретного клиента через связь

Заказы конкретного клиента через связь

Отчёт показывает заказы клиента, найденного по имени. Клиент один, заказов у него десяток — а обе таблицы читаются целиком. Соединение само по себе не проблема — проблема в том, что дороги к заказам клиента нет. Постройте её; индекс по users.name в этой задаче не нужен.

Ускорьте этот запрос индексом
SELECT o.id, o.status, o.created_at
FROM orders o
JOIN users u ON u.id = o.user_id
WHERE u.name = 'Anna 100'

Только CREATE/ALTER/DROP — SELECT в конце не нужен.

Что считается решением

Менять можно только схему: индексы и ANALYZE. Запрос из условия остаётся как есть — присылать его не нужно.

  • в плане нет Seq Scan по orders
  • запрос читает не больше 333 страниц по 8 КБ

Проверка идёт на данных крупнее тех, что вы видите в примерах, — ответ должен держаться на объёме.

PostgreSQLv16

Здесь будет результат вашего запроса

Фокус-радио
На паузе · SomaFM · Fluid