【发布时间】:2011-02-18 15:23:56
【问题描述】:
我正在使用下面的查询,当我每页运行一次此查询时没有问题,但需要在单个页面上调用大约 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
【问题讨论】:
-
你考虑过缓存吗?
-
你用的是什么mysql客户端?我已经看到 5.0.52 客户端的错误 - 一个已知问题。