gpt4 book ai didi

5.0 和 5.6 上的 MySQL 查询解释效率

转载 作者:行者123 更新时间:2023-11-29 05:26:01 27 4
gpt4 key购买 nike

我们刚刚将我们的数据库服务器移到一台新机器上,并将 mysql 从 5.0 升级到 5.6。我们有一个保持同步的救助服务器,它仍然是 mysql 5.0,所有表都是 MyISAM,我在新服务器上遇到了减速问题。我已经在两台服务器上的所有相关表上运行检查、分析、修复、优化,但新服务器仍然需要大约 20 秒,而旧服务器需要 0.2 秒来运行以下查询。

SELECT DISTINCT `personBaseData`.`PersonID`, 
`personBaseData`.`Forename`,
`personBaseData`.`Nickname`,
`personBaseData`.`Surname`,
COUNT(*) AS Count
FROM `personBaseData`
LEFT JOIN `sessionAttendance`
ON (( `personBaseData`.`PersonID` =
`sessionAttendance`.`ContactID` )
AND ( `sessionAttendance`.`ContactType` = 'Individual' ) )
JOIN `sessionBaseData`
ON (( `sessionAttendance`.`SessionID` = `sessionBaseData`.`SessionID` ))
JOIN `sessionGroupBaseData`
ON (( `sessionBaseData`.`SessionGroupID` = `sessionGroupBaseData`.`SessionGroupID` ))
WHERE `personBaseData`.`PersonID` IN (SELECT `PersonID`
FROM `personFlexData`
WHERE ( `flexName` = 'Organisation_P_27'
AND `flexValue` = 'HCCT' ))
AND `sessionBaseData`.`StartDate` > '2013-08-15'
AND `sessionAttendance`.`Attended` = '1'
AND `sessionGroupBaseData`.`Title` = 'Open Access (HCCT)'
AND `personBaseData`.`Type` & '1'
GROUP BY `personBaseData`.`PersonID`
ORDER BY Count DESC,
`personBaseData`.`Forename` ASC,
`personBaseData`.`Nickname` ASC,
`personBaseData`.`Surname` ASC ;

在两台服务器上运行这个sql,返回

新的 5.6 服务器

enter image description here

Bailout 5.0 服务器

enter image description here

有什么明显的我可以追求的吗,看起来像是遍历变量,寻找任何明显的东西,但我不确定主要的踢球者可能是什么,但显然我想做主要选择不是简单的,只有一个大行数。

提前致谢

最佳答案

在 5.5 的发布/审核过程中,我们检查了 5.0、5.5 和 5.6 中的每个设置,以尝试创建一个 super 集。

我们发现 5.5 到 5.6 中的 optimizer_switch 设置发生了很大的变化,因此在我们回滚之前让我们将 extras 设置为关闭。

这成功了。

经过进一步检查,关键设置是半连接。将此设置为关闭,使 5.6 与 5.5 一样快

我真的希望这对某人有帮助。
干杯

关于5.0 和 5.6 上的 MySQL 查询解释效率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20224841/

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