0

200人以上のユーザーがいるゲーム指向のWebサイトがあります。このサイトには、ユーザーのプレイを追跡する大規模なデータベースがあり、継続的な参加の動機の1つは、サイトがユーザーに提供する広範な統計とランキング(S&R)です。

追跡されるS&Rのリストが増えるにつれ、ページの読み込み速度を向上させるために、より複雑な計算の一部がオンザフライで生成されるのではなく、データベース内のテーブルに移動されました。

ただし、年末までに大規模なS&Rから徹底的なS&Rに移行し、ユーザーが利用できるデータポイントの総数を10倍に増やす予定です。オンザフライクエリの実行を停止し、すべての計算をcronジョブに移動しますが、データをどこに保存するかわかりません。

ユーザーベースが1000未満の場合、このデータをデータベース内に配置するか、各ユーザーの統計のテキストファイルを読み取り/書き込みする方が理にかなっていますか?

これらは私の心の主な長所と短所です:

S&Rをデータベースに保存する

+ cross-user comparisons are easy and fast
+ faster cron jobs because there's no need to write to many, many files
- database table count will jump from ~50 to 200+ (at least)
- one point of failure (database corruption) for all site data
- modifying S&R structure requires modifying database as well

S&Rをテキストファイルに保存する

+ neatly organized and distributes data corruption risk
+ database is easier to navigate
+ redesigning S&R structure is done by simply modifying script and 
  overwriting all text files, rather than adjusting database tables
- cron job will have to read/update XXX files each time
- cross-user comparisons are difficult and time-consuming

しかし、私はこれまでにこれほどの規模のことをしたことがないので、たとえば、200以上のテーブルのMySQLデータベースが本当に問題であるかどうかはわかりません。

私はあなたが提供できる提案をいただければ幸いです!:-)

4

1 に答える 1

1

一般的なデータベースソフトウェアは、数百万のエントリを処理できるはずです。200以上のテーブルがあることは、そのための問題ではありません。

破損する可能性は低いですが、その性質のサイトでは、かなり頻繁にバックアップを実行する必要があります。サーバーの外部にコピーを保存することをお勧めします。個々のファイルを使用すると、一般的な障害が発生する可能性が低くなりますが、問題が発生する可能性もわずかにあります。 。

データベースソフトウェアは、データに対してタスクを実行するのに優れています。フラットファイルを使用すると、それらを処理するための独自のメソッドを作成する必要があります。これは、データベース(私はこれを想定しているだけです、私は非常に間違っているかもしれません)。

于 2010-09-14T01:47:42.517 に答える