作者:凯蜜斯特 | 来源:互联网 | 2023-07-24 13:24
在做的游戏中,有个需求是显示的游戏公会列表要按照总战力排序,比如显示战斗力最强的前30个公会。我们的数据库缓存了公会总战力,以方便数据库查询,但是在性能上碰到了一些问题。
在做的游戏中,有个需求是显示的游戏公会列表要按照总战力排序,比如显示战斗力最强的前30个公会。我们的数据库缓存了公会总战力,以方便数据库查询,但是在性能上碰到了一些问题。
做法1、每个成员有战力变更的时候,重新取一遍公会的所有成员的战力,然后加起来。这种做法比较准确,但也比较耗。
做法2、每个成员有战力变更的时候,传递增量给公会,公会总战力加上增量就是新的总战力。这种做法相对没那么耗,但是可能会出现数据不准确的情况。
做法3、定期计算公会的所有成员的战力之和,然后更新数据库的数据。这种做法会带来持续上的性能消耗,例如一个没有人上线的公会都有性能消耗。
目前打算采用做法1,先把问题记下来,看看后面有没有更好的思路