コミュニティサイトでユーザーの行動履歴を残したいと思っているのですが、一つ一つデータベースに挿入していると、規模が大きくなればじきに無理が来そうです。例えばgoogleではアカウント登録してから今までの検索履歴を全て参照可能ですが、それはどのように行なっているのでしょうか?ユーザー一人につきJSONなど別ファイルを用意するほうが現実的でしょうか。
googleAnalyticsなどを使うか、システム側でDBに入れます。不可を心配する程ユーザーがいるならサーバ屋さん、DB屋さんに相談するくらいの予算はでるでしょう。
ようはDBの構成や負荷の話ですよね? しかるべき構成にして、規模に付随したサーバーのスペックがあれば問題ないと思いますよ。あなたがDBを担当する人でしたら失礼ですが、餅は餅屋だと思いますよ。
分散処理、NoSQL
まず企画の段階で、過去1ヶ月分だけ保存するなどとしておきます。(過去全てに渡って追跡可能にすると、時系列でDBを分けたりとサーバが増え続けることになります)書き込みの負荷は、ユーザID等を用いて、DBサーバへのアクセスを水平分散(Sharding)させることになるでしょう。参照負荷は、レプリケーションで比較的容易に分散可能です。
みんなの回答 4 件
googleAnalyticsなどを使うか、システム側でDBに入れます。
不可を心配する程ユーザーがいるならサーバ屋さん、DB屋さんに相談するくらいの予算はでるでしょう。
ようはDBの構成や負荷の話ですよね? しかるべき構成にして、規模に付随したサーバーのスペックがあれば問題ないと思いますよ。あなたがDBを担当する人でしたら失礼ですが、餅は餅屋だと思いますよ。
分散処理、NoSQL
まず企画の段階で、過去1ヶ月分だけ保存するなどとしておきます。
(過去全てに渡って追跡可能にすると、時系列でDBを分けたりとサーバが増え続けることになります)
書き込みの負荷は、ユーザID等を用いて、DBサーバへのアクセスを水平分散(Sharding)させることになるでしょう。
参照負荷は、レプリケーションで比較的容易に分散可能です。
関連するトピックス