2011-08-03 20 views
0

ユーザーがログインして使用するウェブサイトがあるとします。各ユーザーは、単一のデータベーステーブルに情報を追加したり削除したりするページにアクセスします。彼らは自分のデータを見てアクセスすることができます。かなりストレートです。DBテーブルを分割して負荷を分散しますか?

ここで、このウェブサイトは非常に人気があるとしましょう。より多くのユーザー+より多くのデータ=大量のレコードを持つ非常に大きなテーブル。

だから、ロードバランシングの理由は、すべてのユーザーが同じようなデータを追加したり、複数の類似したテーブルを持ち、ユーザーが設定された数で共有されているテーブルに割り当てられているユーザー。

1000人のユーザーが1つの大きな表を選択して更新するのではなく、おそらくそれぞれが10人のユーザーがアクセスする100個の表があります。

これは、負荷分散を改善するデータベース編成戦略の一種です。あるいは、それは同じ量の負荷を引き起こすでしょうか?これは共通の戦略ですか、そうであればそれには名前がありますか?

私はこれをServerFaultに投稿したと思います。移行してください。

+0

この質問は、(システム管理に関する質問ではなく、プログラミング上の質問ではなく、http://serverfault.comに所属しています)、StackExchangeサイトで質問することはできません(意見、議論や議論の延長は、「非建設的」の理由で閉鎖される)。これは、SEのQ&Aフォーマットに適したものではなく、特定のプログラミングに関する質問に対する正解のリポジトリを作成するという目標ではないことを意味するものではありません。あなたはそれを聞くことができます、ちょうどここではない。 –

+0

まず、昨夜私がSFを投稿したときにSFにログインしたと思った。それがわかっていませんでした。次に、これは建設的な質問ではありませんか?潜在的なデータベース・ロード・バランシング・ソリューションがどのように有効(または有効ではない)かについての質問です。それは誰の意見や主観的な答えを求めている質問ではありません... –

答えて

1

もし、あなたがデータベース関連のボトルネックに遭遇しないとき、あなたのアクティブなデータセットのサイズは、サーバー上のRAMの量を超えて大きくなると、それができるでしょう。その時点で、同じサーバー内でテーブルを分割することはあなたに何も買わないでしょう。ディスクIOがRAMよりもはるかに遅いという事実を変えることは何もしません。 RAMをアップグレードするか、できるだけ多くのことをやってから、複数のサーバーにデータをシャーディングします。

0

ルックアップシャーディング。しかし、今私はあなたがこれを気にしないことをお勧めします。あなたが実際に大きくて、それを測定できるようになるまで、あなたのシステムの遅い点が何であるかは、実際にはわかりません。

も参照してください:http://dev.mysql.com/doc/refman/5.1/en/partitioning.html

関連する問題