mysql - 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 万玩家的所有评分,然后对其进行排序。我该如何优化它?
解决方案
推荐阅读
- node.js - 在 heroku 上部署 MERN 会导致意外错误
- javascript - 我可以使用引导弹出框显示带有标题(文本和图像)和正文(文本)的内容吗?
- drop-down-menu - 如何使用 MS Word 下拉列表来指定 INCLUDETEXT 的范围?
- android - android错误找不到类JobSchedular
- java - 如何使用 JNA(打印机和作业)从 WinspoolUtil 和 Winspool 获取 JobInfo2?
- groovy - 为什么在 JSR223 PreProcessor 中替换 POST 参数会在后续迭代中将其删除?
- php - 将数据插入数据库 CodeIgniter 3.x
- xss - HackerOne 0级网站如何做XSS
- python - 即使答案错误,Python 的分数也会增加
- matlab - 在 Matlab 中从复杂的目标函数中找到梯度