Si es posible eliminar esas uniones, elimínelas. Reemplazarlos con subconsultas lo acelerará mucho.
también podría intentar ejecutar algo como esto para ver si hay alguna diferencia de velocidad.
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)