我正在使用下面的查询,当我每页运行一次这个查询时没有问题,但它需要被调用大约30次以上,并且单个页面上的值略有不同,有时运行正常,有时页面运行不正常永远不会加载,有时我会收到“服务器已消失”错误,http://dev.mysql.com/doc/refman/5.0/en/gone-away.html
这是一个性能问题吗?我是否需要将此查询分解为较小的查询(这会产生任何影响),还是我可以做其他事情?
SELECT normalmtm.id, normalmtm.amt, normalmtm.lockexpire, ptassumptions.id, ptassumptions.zero, ptassumptions.beta, ptdata.id, ptdata.date
FROM normalmtm
INNER JOIN ptdata ON ptdata.date = normalmtm.lockdate
INNER JOIN program ON program.clientcode = '1' AND program.clientprogram = normalmtm.program AND program.normalprogram = 'program'
INNER JOIN ptassumptions ON ptassumptions.clientcode = '1' AND ptassumptions.program = program.normalprogram
INNER JOIN purpose ON purpose.clientcode = '1' AND purpose.clientpurpose = normalmtm.purpose AND purpose.normalpurpose = ptassumptions.purpose
INNER JOIN status ON status.clientcode = '1' AND status.clientstatus = normalmtm.stage AND status.normalstatus = ptassumptions.status
WHERE normalmtm.clientcode = '1'
GROUP BY normalmtm.id
normalmtm 表有几千行,其他表是较小的规范化表,大约有 100 行
编辑
它是在本地 Windows 计算机上运行的 WAMP 服务器,Apache 版本:2.2.11,PHP 版本:5.3.0,MySQL 版本:5.1.36
最佳答案
你有正确的索引吗?如果您只获得您提到的记录数,则此查询应该很快就会运行。
关于php - MYSQL 错误,服务器消失了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5043070/