Я выполнил анализ объяснения для этого запроса, он давал 30 мс, но если данных будет больше, срок выполнения истечет;Использование PostgreSQL 10
Для нормального выполнения: https://explain.depesz.com/s/gSPP
Для медленного выполнения: https://explain.depesz.com/s/bQN2
SELECT inventory_histories.*, order_items.order_id as order_id FROM
"inventory_histories" LEFT JOIN order_items ON (order_items.id =
inventory_histories.reference_id AND inventory_histories.reference_type = 4)
WHERE "inventory_histories"."inventory_id" = 1313 AND
(inventory_histories.location_id = 15) ORDER BY inventory_histories.id DESC
LIMIT 10 OFFSET 0;
Индексы:
"inventory_histories_pkey" PRIMARY KEY, btree (id)
"inventory_histories_created_at_index" btree (created_at)
"inventory_histories_inventory_id_index" btree (inventory_id)
"inventory_histories_location_id_index" btree (location_id)