Als het al mogelijk is om die joins te verwijderen, verwijder ze dan. Als je ze vervangt door subquery's, wordt het veel sneller.
je zou ook iets als dit kunnen proberen om te zien of er überhaupt een snelheidsverschil is.
select [stuff] from orders as ord
left join (
create view calc_order_status as
select ord.id AS order_id,
(sum(itm.items * itm.item_price) + ord.delivery_cost) AS total_total
from orders ord
left join order_items itm on itm.order_id = ord.id
group by ord.id
) as ors on (ors.order_id = ord.id)