0

SQL データベースを使用して複数のゲームにリーダーボードを実装する最もエレガントな方法は何ですか?

ゲーム G1 があり、プレイヤーはそこで異なるスコアを取得します (0 から 100 まで) ゲーム G2 があり、プレイヤーはそこでも異なるスコアを取得します (ただし、0 から 1000 まで) ゲーム G3 があり、プレーヤーはそこでも異なるスコアを取得します ( 1000 から 10000 まで)

おそらく共有プレーヤー (ただし、必須ではありません) リーダーボードを実装するにはどうすればよいですか?すべてのゲームで上位 5 位のプレーヤーを表示でき、大量の SQL クエリで DB を殺すことはありません。このリーダーボードへの 1 秒あたりのリクエスト数は、数百、場合によっては数千にのぼります。

私自身のアイデアはほとんどありませんが、どちらもエレガントでもシンプルでもありません...

4

1 に答える 1

0

1 つのアプローチは、「順位」をメモリ テーブルに入れ、1 秒あたり 1 回更新することです。次に、「リーダーボードの表示」ページについてこれをクエリします。この方法では、サーバーはゲームのランキングを 1 秒あたり 1 回だけクエリします。とにかく、「リーダーボード」テーブルへのクエリはメモリから取得され、通常はクエリキャッシュから取得されます (有効にしている場合)。

順位は派生テーブルであるため、ディスクに書き込む理由はありません。

ああ-そして@bestprogrammerintheworldが言ったことをしてください-あなたの接続を再利用してください。

于 2013-03-28T13:51:57.833 に答える