首页 > 解决方案 > MySQL评级表优化

问题描述

我在 MySQL 中有一个 RatingTable: player_id INT、game_type INT、rating INT 有 5 种不同的游戏类型(例如国际象棋、检查、围棋等)。游戏中的评分越高越好 我想获得总评分最高的前 10 名 player_id。总评分 = 所有游戏类型的所有评分之和。我可以这样解决:

SELECT player_id, SUM(rating) as TotalRating 
FROM RatingTable 
GROUP BY player_id
ORDER BY TotalRating DESC
LIMIT 10;

但我担心的是,如果有 1000 万玩家拥有 5 种不同的游戏类型,这将占用大量内存和 cpu。它将汇总所有 1000 万玩家的所有评分,然后对其进行排序。我该如何优化它?

标签: mysqlsqloptimization

解决方案


推荐阅读