Việc thực thi truy vấn được phép bỏ qua ORDER BY
trong FROM ( SELECT ... )
. Đây có lẽ là lý do thực sự cho sự khác biệt mà bạn đang thấy. (Tôi không nghĩ câu trả lời của Gordon có liên quan.)
Vấn đề được thảo luận ở đây (4 năm trước):https://mariadb.com/kb/en/mariadb/group-by-trick-has-been-optimized-away/ ; có một giải pháp, thông qua một cài đặt.
Một số giải pháp khác tại đây: http://mysql.rjweb.org/doc.php/groupwise_max ; chúng được thiết kế để hoạt động hiệu quả.
Tuy nhiên, một có thể khác giải pháp là thêm một LIMIT
không có thật với một số lượng lớn trên truy vấn con.