gpt4 book ai didi

mysql - 使用 ORDER BY 时查询速度慢

转载 作者:IT老高 更新时间:2023-10-28 23:54:58 26 4
gpt4 key购买 nike

这是查询(最大的表有大约 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 解决方案有效,但谁能解释它为什么有效?

最佳答案

也许这有帮助:

SELECT * FROM (    
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
) ORDER BY CourseID

关于mysql - 使用 ORDER BY 时查询速度慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/884661/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com