2010-12-11 8 views
0

私は大きなプロジェクトを考えています。それは別のWebページ(おそらく約2000万人の巨大なMySQLデータベースで動作するはずです、私はMySQLがそのような量のレコードを処理できることを願っています)。しかし、1台のサーバーがそのような負荷を処理することができないため、複数のサーバー間で要求をデータベースに共有する必要があります。私はGoogleやArchive.orgのような大きなプロジェクトがこれをやっているのだろうか?複数のサーバーが単一のMySQLデータベースで作業しています

  1. MySQLデータベースは、独立したスタンドアロンサーバーにあります。
  2. MySQLデータベーステーブルには、処理のためにレコードが割り当てられている特定のサーバー名を持つ "server"というフィールドが含まれています。
  3. 各サーバはMySQLサーバに接続し、そのサーバに割り当てられたレコードでのみ動作します(そのテーブルの「サーバ」フィールドを調べることによって)。

私はこれがnoobメソッドだと思っていますが、私はあなたの意見を知りたいのですが、もっと最適化された形で実装する方法を見てみたいと思います。

チップがあればうれしいです。

ありがとう、 デニス。

答えて

1

(多分約20百万円、私はMySQLの レコードのような量を扱うことができると思います)

20Mレコードのデータベースに対して何もの隣にあります。それはあなたのデータベースの使い方、SQL、データモデルの書き方などについてです。20Mレコードについて心配する必要はありません。何の問題もないでしょう。

+0

よく、私は基本的に20Mのレコードを扱うことは、データベースの最適化、ディスクスペースとプロセッサについてです。主な問題は、ページが永続的な再索引付けの対象となるはずなので、データベースへの複数のサーバーアクセスを管理する方法です。これは多くのリソースを取得する必要があるため、このタスクを処理するには複数のサーバーが必要です。そして、そのような仕事を賢明に組織する方法が問題です。私が上に開発したスキームは、私にとってはいくぶんプロフェッショナルではないようです。ではない?どのように私はより専門的な方法でそれを整理するでしょうか?またはそれは大丈夫です – Dennis

+0

3NFで適切な正規化を実行してください:http://en.wikipedia.org/wiki/Database_normalization 1つのデータベースサーバーが1秒あたり多くの要求を処理できるため、接続プールも役立ちます。スケールアウトする必要がある場合は、データベース複製を使用できます。しかし、多くの同時ユーザーのために大量のデータを処理するデータベースが作られていることを忘れないでください。 MySQLは最高のパフォーマンスを持つ獣ではありませんが、多くの状況でうまくいくでしょう。 –

関連する問題