クエリは次のとおりです (最大のテーブルには約 40,000 行あります)
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
これを実行すると、非常に高速に実行されます (およそ 0.05 秒)。13 行を返します。
クエリの最後に句を追加するとORDER BY
(任意の列で並べ替える)、クエリに約 10 秒かかります。
現在、このデータベースを本番環境で使用していますが、すべて正常に動作しています。私の他のすべてのクエリは迅速です。
それが何であるかについてのアイデアはありますか?MySQL のクエリ ブラウザで、コマンド ラインからクエリを実行しました。両方の場所で、ORDER BY
.
編集: Tolgahan ALBAYRAK ソリューションは機能しますが、なぜ機能するのか説明できますか?