Planlæggeren bruger sandsynligvis ikke limit
tip til at fjerne rækker fra ordretabellen før sammenføjningen. Så serveren skal lave joinforbindelsen for alle rækker og derefter returnere nogle få.
Prøv dette:
select o.* from
(select * order order by id desc limit 100) o
inner join product p
on o.product_id=p.id
inner join person per
on o.person_id=per.id
order by o.id desc limit 100;
EDIT:Dette vil kun fungere, hvis der er en begrænsning, der garanterer, at tilsvarende rækker er til stede i produkt- og persontabeller.