1

我有一个 DynamoDB 表。我在“Id”字段上有一个索引。

我还有其他字段 - 状态、时间戳等,但我没有这些其他字段的索引。

状态可以是“在线”、“离线”、“进行中”等。

我想根据“status”和“Id”字段获取记录数。

用户将传递 Id 字段,查询需要根据状态字段返回计数。例如

“在线”:20

“离线”:30

“进行中”:40

查询工作正常。

据我了解,DynamoDb 查询输出的最大大小为 1 MB。此限制在将任何 FilterExpression 应用于结果之前应用。

由于表中的记录数很大(大约 100k),我需要通过传递“独占开始键”参数一次又一次地执行查询。

https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Query.html#Query.Pagination

事实上,我需要在循环中运行多个查询(每个状态值一个),以根据“状态”字段计算计数。

有没有有效的方法来检索这些计数?

我也在考虑将索引扩展到状态字段。因此它将消除应用过滤器表达式的需要。

4

1 回答 1

0

如果该字段未编入索引,则需要进行表扫描以获取完整计数。您可以并行化扫描以使其更快,或者只是索引它。

于 2019-09-11T10:13:56.153 回答