私は以下のクエリを使用していますが、このクエリをページごとに1回実行すると問題はありませんが、1回のページでわずかに異なる値で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行
EDIT
と小さい正規化されたテーブルですそのローカルのWindowsマシン、Apacheのバージョンで実行されているWAMPサーバ:2.2.11、PHPバージョン:5.3.0、MySQLバージョン:5.1.36
キャッシュについて考えましたか? – RobertPitt
どのようなmysqlクライアントを使用していますか?私は5.0.52クライアントのエラーを見てきました。これは既知の問題です。 – sreimer