好奇用SQL数据库在多个游戏中实现排行榜最优雅的方式是什么?
我有游戏G1,玩家在那里得到不同的分数(从0到10000)我有游戏G2,玩家在那里得到不同的分数(但从0到1000)我有游戏G3,玩家在那里得到不同的分数(从1,000到100)
可能是共享玩家(但不是必须的)我如何实现排行榜,这样我就可以显示所有游戏中排名前5的玩家,而不会因为大量的SQL查询而杀死我的数据库?我说的是数百甚至数千次请求/秒到这个排行榜。
我几乎没有自己的想法,但它们似乎都不够优雅和简单……
发布于 2013-03-28 21:51:58
一种方法是将“排名”放在mem表中,并以1x/秒的速度更新它。然后查询“显示排行榜”页面。这样,您的服务器将仅查询1x /秒的游戏排名。对“排行榜”表的查询无论如何都会来自内存,并且通常来自查询缓存(如果您启用了它)。
由于排名是一个派生表,因此没有任何理由将其写入磁盘。
哦--照@ reuse and说的做--重用你的连接。
https://stackoverflow.com/questions/15683359
复制相似问题