查询DynamoDB中的大小限制

Dmi*_*nik 7 amazon-dynamodb

我没有在DynamoDb中获得查询/扫描限制的概念.根据文件:

单个Query操作最多可以检索1 MB的数据.在将任何FilterExpression应用于结果之前,此限制适用.

假设我有10k项,每项250kb,所有这些都适合查询参数.

  1. 如果我运行一个简单的查询,我只得到4项?
  2. 如果我使用ProjectionExpression只检索单个属性(大小为1kb),我会获得1k项吗?
  3. 如果我只需要计算项目(选择:'COUNT'),它会计算所有项目(10k)吗?

F_S*_*O_K 12

如果我运行一个简单的查询,我只得到4项?

如果我使用ProjectionExpression只检索单个属性(大小为1kb),我会获得1k项吗?

不,在查询完成后应用filterexpressions和projectexpressions.所以你仍然得到4件物品.

如果我只需要计算项目(选择:'COUNT'),它会计算所有项目(10k)吗?

不,还只是4

你可能在这里缺少的是你仍然可以得到所有10k的结果,或者10k计数,你只需要在页面中得到结果.这里有一些细节.基本上,当您完成查询时,检查LastEvaluatedKey属性,如果它不为空,则获取下一组结果.重复此操作,直到该属性为空,并且您知道您拥有所有结果.

编辑:我应该说一些SDK为你抽象出来.例如,Java SDK已经queryqueryPage,query多次返回服务器以获得完整的结果集(即在您的情况下,为您提供完整的10k结果).