2011-02-18 7 views
0

私は以下のクエリを使用していますが、このクエリをページごとに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

+0

キャッシュについて考えましたか? – RobertPitt

+0

どのようなmysqlクライアントを使用していますか?私は5.0.52クライアントのエラーを見てきました。これは既知の問題です。 – sreimer

答えて

2

適切なインデックスがありますか。あなたがあなたが言及したレコードの数しか持っていない場合、このクエリはjiffyで実行する必要があります。

+1

はい、特にテーブルを結合するとき、インデックスは大きな違いになります。単一のテーブルの参照は非常にうまくいくことができますが、結合が必要です。インデックスが必要です。 –

+0

あなたは正しいですか、私はそれらを追加してもインデックスはありません。 "SHOW INDEX FROM tablename"を使用すると、ローカルWindowsマシン上でWAMPサーバーを使用していますが、私はphpMyAdminコントロールパネルのインデックスをテーブル構造ビューでクリックして追加しています。さらに変更するには "ALTER TABLE"を試しましたが、それでも効果はありませんこれはWAMPの問題ですか?私はウェブサーバーで同じ問題を抱えていますか? – ambiguousPanda

0

あなたは既に答えを見つけたようです。

DBMSへの接続の作成とクエリの発行にはどのくらい時間がかかりますか?クエリを開始してからエラーメッセージが表示されるまでにどれくらい時間がかかりますか? wait_timeoutの値は何ですか?

normalmtmテーブルが数千行を有し、他のテーブルはそう時間に基づいてジョインと(データベースは、正規化された約100行

と小さい正規化テーブルを想定していますか!!?クエリーは0〜1000 x 100 x 100 x 100 x 100 x 100行の間で処理する必要があります(後者はかなり大きな数です)。

あなたのインデックスを見る必要があるように聞こえます。

関連する問題