维护MySQL中的有序集合

时间:2014-04-25 12:27:50

标签: mysql database

我的要求是创建一个具有以下结构的表

(user_id,得分,等级)

user_id是一个整数标识符(也是主键)。

得分也是表示用户得分的整数值。

rank是得分> gt的用户数当前用户的得分。

此表的条目必须通过插入另一个表来进行管理。 只要在该表中发生与user_id相对应的条目, 我的表中的得分变量需要加1,并为每个user_id重新计算等级。

现在问题是排名更新非常昂贵,因为我需要将每个用户的得分与每个其他用户进行比较。

有没有办法可以创建一个有序的表格,根据分数对记录进行排序,每当更新得分时,该行会向上或向下移动?

底层数据库是MySQL。实现这个的最佳方法是什么?性能是这里最受关注的,并且得分变化非常频繁。

1 个答案:

答案 0 :(得分:0)

将属性AUTO_INCREMENT添加到列userid,它会在插入时自动完成。  然后无需在INSERT查询

中提供用户标识值