【发布时间】:2014-06-11 04:08:17
【问题描述】:
我的要求是创建一个结构如下的表
(user_id, score, rank)
user_id 是一个整数标识符(也是主键)。
score 也是代表用户得分的整数值。
rank 是得分 > 当前用户得分的用户数。
必须通过插入另一个表来调节该表的条目。 每当该表中出现与 user_id 对应的条目时, 我表中的 score 变量需要加一并为每个 user_id 重新计算排名。
现在的问题是排名更新非常昂贵,因为我需要将每个用户的分数与其他每个用户进行比较。
有没有一种方法可以创建一个有序表,其中记录根据分数进行排序,并且每当发生分数更新时,该行向上或向下移动?
底层数据库是 MySQL。实现这一点的最佳方法是什么?性能是这里最受关注的问题,分数变化非常频繁。
【问题讨论】: