我使用下面的查詢,當我每頁運行一次這個查詢沒有問題,但它需要被調用大約30+次,在單個頁面上稍微不同的值,有時它運行正常,有時頁面從不負載,有時我得到一個「服務器已經消失」的錯誤,http://dev.mysql.com/doc/refman/5.0/en/gone-away.htmlMYSQL錯誤,服務器已經消失?
是這是一個性能問題,我需要將這個查詢分解成更小的(這將甚至有任何影響),或有東西別的我可以做嗎?
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行
編輯
較小的規範化表的一個WAMP服務器的本地Windows機器,Apache的版本上運行:2.2.11,PHP版本:5.3.0,MySQL版本:5.1.36
你有沒有想過緩存? – RobertPitt
你使用的是哪個mysql客戶端?我已經看到了5.0.52客戶端的錯誤 - 一個已知問題。 – sreimer