2011-01-07 36 views
0

私は、特定のページが私のライブウェブサイトにデータを返すのに約15秒かかり、私のステージングウェブサイトに2秒かかるという私のウェ​​ブサイトに問題がありました。彼らはどちらも同じデータベースのバックアップを使用しました。MySql最適化クエリ

私のステージングデータベースでは、古いステージングデータベースを削除し、変換されたバックアップを新しいステージングデータベースとして復元したことに気付きました。

しかし、ライブデータベースでは、実際のデータベースで直接データベース変換を実行していました。

それで、私はライブデータベースで同じことをして、既存のものを削除し、変換されたバックアップから復元して、その特定のWebページの時間が15秒から2秒に減少しました。

私の質問はなぜですか??念頭に置いておくべきことは、インデックスが大きくなりすぎていて、データベースを削除するとインデックスが再作成されたということだけです。\

私は遠く離れていますか?その他の理由は?また、これが当てはまる場合、どうすればデータベースを削除せずに将来これを回避できますか?

ありがとうございました

答えて

1

説明プランをチェックしてみるか、統計を更新する必要があります。これらの種類のものを高いレベルで判断するのは難しいです。なぜなら、サーバー間でさまざまなことが起こりうるからです。

+0

こんにちはPMV。あなたが言及した計画を説明するのはどこですか? WorkBenchまたはMYSQL Query Browserで利用可能ですか? – Cheeky

+0

クエリの前にEXPLAINと記述してください。 http://www.beberlei.de/mysql_explain.htmlは出力を理解するのに役立つはずです。 –

+0

PMVに感謝します。今の結果を見てください。 – Cheeky

0

問題が多い(または両方)データベースですか?

ステージングDBで実行していなかったDBでは、どのような「変換」を行っていますか?

何が起こっているのでしょうか?

多分この本http://www.amazon.com/High-Performance-MySQL-Jeremy-Zawodny/dp/0596003064(その非常に良い)(私は著者ではありません)を読むかもしれません。

+0

ライブデータベースとステージングデータベースとの唯一の違いは次のとおりです。 ステージングでは、ライブデータベースのコピーをとり、その上で変換スクリプトを実行し、ステージングとして復元しました ライブでは、ライブウェブサイト上の同じ変換スクリプト。 本質的に、ライブデータベースとステージングデータベースは同一です。唯一の違いは、ステージングDBが削除され、ライブDBのコピーから復元されたのに対し、ライブは削除されず、単にオフラインにされずに変換が実行され、その後復元されたことです。 – Cheeky

0

テーブルを再構築したときに、レコードが互いに近くにある便利なレコードを配置する順序でレイアウトされているため、クエリでディスクの読み取り回数が必要ないことがあります。確認したい場合は、MySQLの統計情報に読み取り回数が表示されます。