iPhone用のソーシャルゲームのバックエンドをRubyonRails/postgresサーバーでホストしています。
すべてのゲームには、データベースのリレーションテーブルを介して接続された54の質問があります。現在、約200万の進行中のゲームがあるため、リレーションテーブルには約1億の行が含まれています。これは多くのメモリを消費します。現在、game_idによってシードされた疑似ランダムシーケンスを使用して54の質問IDを生成するアルゴリズムの構築を検討しています。アイデアは、明示的なゲームの質問の関係をデータベースに保存せずに、一見ランダムな質問のコレクションを作成することです。このようにして、データベースからアプリケーションサーバーに負荷を移動できます。これは良い考えですか?
擬似コード:
r = Random.new(game_id)
q1_id = r.rand(n_questions)
q2_id = r.rand(n_questions)
...