MySQL5.7.10简单查询比5.6.35慢

fjnneemd  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(304)

我已经将一个数据库从5.6.35复制到5.7.10,这两个版本都是mysql社区服务器版本,由于某些原因,我的查询运行非常慢。它是一个innodb数据库。
5.6是我的开发服务器。
windows server标准sp2
32位
4gb内存
5.7是我的生产服务器
windows server 2008 r2企业版sp1
64位
24gb内存
这不是一个复杂的查询。

SELECT t.*
,(SELECT `name` FROM users u1 WHERE u1.id = t.addedby) AS addebyname
,(SELECT `name` FROM users u2 WHERE u2.id = t.modifiedby) AS modifiedbyname
,(SELECT `title` FROM tasks_groups tg WHERE tg.id = t.groupid) AS grouptitle
,(
CASE
    WHEN t.active=0 THEN CONCAT(t.title,' (Inactive)')
    ELSE t.title
    END
) AS combo
,(SELECT
    IFNULL(SUM(ts.worked),0)
    FROM timesheet ts
    WHERE ts.taskid=t.id
) AS totaltaskhours
FROM tasks t

5.6需要0.468秒才能返回58条记录
7.5需要89.922秒才能返回58条记录
如果我删除了查询的(selectifnull…)部分,那么它的运行速度非常快,所以不知道为什么这会减慢5.7版的查询速度。我在各个表之间设置了所有索引。时间表只有238837行,所以没有那么大。

我有点不明白为什么。。。
这是解释结果,不太清楚这意味着什么。。
5.6

5.7

8gsdolmq

8gsdolmq1#

不管是谁安装了mysql服务器,都懒得在ini文件中将innodb\u buffer\u pool\u大小设置为一个合适的大小。在一台24gb的服务器上,它的容量非常低,增加了,现在一切都按预期运行。谢谢大家的建议

相关问题