1

我们想根据用户的积分给他们排名。我们应该如何使用 DynamoDB 实时实现这一点。我们可能有超过 10000 个用户对超过 10000 个分数进行排序和查询以查找排名似乎很昂贵。请给一些建议。

4

2 回答 2

0

所有表都有一个分区键(可能是 userId),但是当您添加一个排序键时,您可以按该排序键的升序或降序获取项目。

当您query(nodejs 文档)时,您可以将ScanIndexForward <Boolean>参数添加到您的请求中,这允许您按升序/降序排序。如果您担心消耗过多的容量,也可以将该Limit <Int>参数添加到您的查询中。

如果您当前的排序键未设置为rank,请设置一个全局二级索引,而不是rank作为排序键。

于 2018-01-08T14:10:15.913 回答
0

如果您将用户的排名保留为表格的排序键,那么您几乎所有的用例都会很有效,例如您可以在排名范围内搜索,在分页视图中获取排名等。

于 2018-01-08T13:31:18.537 回答