私はゲームを持っています。各ラウンドプレイヤーは賞金を得て、賞金総額を計算します。 私は、このようなスキーマを使用します。ゲーマーの評価計算のためのデータベース/クエリ設計の助けが必要
1)テーブルgame_result(user_idは、賞品、game_dateは)別にゲームの結果を格納するために使用された(私は私の統計のためにそれを必要とする)
2)テーブルの評価(USER_ID、total_prize 、total_games)は、評価データとtotal_prizeを格納するために使用されます。合計ゲーム値は各ゲームの最後に更新されます。
3)ゲーム中に表示するために、ユーザーの賞金とポジションを速く評価する必要があります。今、私はこのクエリ
SET @rank=0;
SELECT @rank:[email protected]+1 AS rank, user_id, total_prize, total_games FROM rating order by total_prize where user_id = ?
のようなものを使用しますが、それは、各クエリの評価表をリゾートや遅すぎます。問題は、各ゲームの後に1人のプレイヤーが(total_prize、total_gamesで)1行だけ変更されますが、新しいオーダーの場所を見つけるためには、テーブル全体を使う必要があり、パフォーマンスは実現できません。
この操作のパフォーマンスを向上させるためにテーブルを再編成することはできますか?
ありがとうございます!
興味深い、Ariel。私はこのクエリを試し、パフォーマンスを比較します。 – dbf