mysql表如何根据分数获得排名?

表A:
id score
1 45
2 76
3 55
...
如果是十万行以上数据,如何高效的获取排名?

阅读 8.9k
3 个回答

对score列加索引

除了索引以外,如果你的表不止这么简单的两列,或是业务排名指标更复杂的话,应该是在给一张排名表。然后用脚本定时或实时的生成排名。这样每次查看排名时,就不需要实时的计算了。

从查询方式上,建议使用distinct和group by,要是可以的话,还是单独一个数据表或缓存,通过一次查询比对,获取排名,减少查询和计算

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题