Оптимизировать # покупок в месяц SQL-скрипт - PullRequest
0 голосов
/ 28 октября 2018

Я бродил, есть ли более оптимизированные решения для запроса ниже:

select count(purchases.id)
from purchases right join purchase_items on purchases.item_id=purchase_items.id
where purchases.created_date >= '2017-06-01'
and purchases.created_date < '2017-07-01'
and purchases.cancellation_date is null
and purchases.pending = 0;

Заранее спасибо!

1 Ответ

0 голосов
/ 28 октября 2018

Используйте внутреннее соединение и добавьте индексы:

select count(*)
from purchases p join
     purchase_items pi
     on p.item_id = pi.id
where p.created_date >= '2017-06-01' and
      p.created_date < '2017-07-01' and
      p.cancellation_date is null and
      p.pending = 0;

Индекс на purchases(pending, cancellation_date, created_date, item_id) и purchase_items(id) поможет в этом запросе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...