Trình tối ưu hóa MySQL sẽ quyết định thứ tự / phương thức tham gia đầu tiên, sau đó kiểm tra xem đối với thứ tự tham gia đã chọn, có thể tránh sắp xếp bằng cách sử dụng chỉ mục hay không. Đối với truy vấn chậm trong câu hỏi này, trình tối ưu hóa đã quyết định sử dụng tham gia Block-Nested-Loop (BNL).
BNL thường nhanh hơn so với sử dụng chỉ mục khi một trong các bảng rất nhỏ (và không có GIỚI HẠN).
Tuy nhiên, với BNL, các hàng sẽ không nhất thiết phải theo thứ tự được đưa ra bởi bảng đầu tiên. Do đó, kết quả của phép nối cần được sắp xếp trước khi áp dụng LIMIT.
Bạn có thể tắt BNL bằng cách set optimizer_switch = 'block_nested_loop=off';