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データベースが本当に問題であるかどうかはわかりません。
私はあなたが提供できる提案をいただければ幸いです!:-)