Người lập kế hoạch, rất có thể, không sử dụng limit
gợi ý để loại bỏ các hàng khỏi bảng thứ tự trước khi tham gia. Vì vậy, máy chủ phải thực hiện phép nối cho tất cả các hàng và sau đó chỉ trả về một vài hàng.
Hãy thử điều này:
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;
CHỈNH SỬA:Điều này sẽ chỉ hoạt động nếu có một ràng buộc đảm bảo rằng các hàng tương ứng có trong bảng Sản phẩm và Người.