Dưới đây là các truy vấn (bảng lớn nhất có khoảng 40.000 dòng)chậm truy vấn khi sử dụng ORDER BY
SELECT
Course.CourseID,
Course.Description,
UserCourse.UserID,
UserCourse.TimeAllowed,
UserCourse.CreatedOn,
UserCourse.PassedOn,
UserCourse.IssuedOn,
C.LessonCnt
FROM
UserCourse
INNER JOIN
Course
USING(CourseID)
INNER JOIN
(
SELECT CourseID, COUNT(*) AS LessonCnt FROM CourseSection GROUP BY CourseID
) C
USING(CourseID)
WHERE
UserCourse.UserID = 8810
Nếu tôi chạy này, nó thực hiện rất nhanh chóng (0,05 giây xấp xỉ). Nó trả về 13 hàng.
Khi tôi thêm mệnh đề ORDER BY
vào cuối truy vấn (sắp xếp theo bất kỳ cột nào), truy vấn mất khoảng 10 giây.
Tôi đang sử dụng cơ sở dữ liệu này trong sản xuất ngay bây giờ và mọi thứ đang hoạt động tốt. Tất cả các truy vấn khác của tôi đều nhanh chóng.
Bất kỳ ý tưởng nào về nó có thể là gì? Tôi chạy truy vấn trong Trình duyệt truy vấn của MySQL và từ dòng lệnh. Cả hai nơi nó đã chết chậm với ORDER BY
.
EDIT: Tolgahan giải pháp ALBAYRAK hoạt động, nhưng bất cứ ai cũng có thể giải thích lý do tại sao nó hoạt động?
Tại sao lại hoạt động? một truy vấn phụ có kết quả trong một tập kết quả và việc đặt hàng một tập kết quả nhanh hơn nhiều so với việc thực hiện truy vấn mặc định có tính theo thứ tự trên đường đi. –