Planista najprawdopodobniej nie korzysta z limit
wskazówka, aby wyeliminować wiersze z tabeli zamówień przed sprzężeniem. Dlatego serwer musi wykonać połączenie dla wszystkich wierszy, a następnie zwrócić tylko kilka.
Spróbuj tego:
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;
EDYCJA:będzie działać tylko wtedy, gdy istnieje ograniczenie gwarantujące, że odpowiednie wiersze są obecne w tabelach Produkt i Osoba.