我正在使用dynamo db分页,基于AWS文档:
- > maxResultSize是此查询中要检索的最大资源数,包括要检索的所有页面中的所有资源。
- > maxPageSize是单个页面中要检索的最大资源数;它用于分页目的。
令人惊讶的是,当我没有设置任何页面大小(1)时,DynamoDb查询明显更快,根据文档不应该这样。我假设如果我们不指定pageSize,dynamo db默认返回所有结果。
querySpec.withExclusiveStartKey(lastAccessedRecord); (1)
querySpec.withMaxPageSize(30);
querySpec.withMaxResultSize(100);
querySpec.withExclusiveStartKey(lastAccessedRecord); (2)
答案 0 :(得分:1)
ItemCollection:它确实使用了延迟加载。来自AWS文档:
对此Iterable返回的Iterator上的{@code Iterator.next}的每次调用都会导致只调用一次DynamoDB以检索单页结果。
另一方面,DynamoDB中的分页基于包的大小(限制1MB大小)。返回的每个页面最大为1MB(项目数量会有所不同)。通过设置maxPageSize,DynamoDB必须执行更多计算才能满足您的请求,而不是仅根据包大小返回匹配项。