问题dynamodb使用start LastEvaluatedKey查询

问题描述 投票:0回答:1

情况:我的学生表上有一百万条记录。

我想查询这个表中的数据。

条件:学生验证了,得分70多分,条件和算子很多。

我想要获得100条记录

在 1000 条记录的第一个请求限制中,我只得到了 5 或 10 名符合我条件的学生。 所以我必须使用 LastEvaluatedKey 循环并获得更多

limit(numberLimit)
,直到我获得 100 个根据我的查询条件有效的记录

我想知道我应该在下一个查询中查询多少个

numberLimit

最糟糕的情况是,我必须搜索所有大约有 8K 条记录的表,并且花费了超过 87.03 秒

amazon-dynamodb dynamodb-queries amazon-dynamodb-index dynamo-local dynamoose
1个回答
0
投票

选择适合您的数据的页面大小。例如,如果您需要 100 个项目,并且 95% 的数据符合条件,则将限制设置为 110。如果您仍然没有达到 100 个,请查看还缺少多少个项目,然后搜索更多的项目。

但正如您所见,过滤数据效率不高,很难知道可能有多少次往返。因此,最好创建一个将过滤条件作为键一部分的索引。这样您就可以通过一次便捷的请求获得 100 件物品。

© www.soinside.com 2019 - 2024. All rights reserved.