Amazon web services AWS DynamoDB查询:查找匹配记录的计数

Amazon web services AWS DynamoDB查询:查找匹配记录的计数,amazon-web-services,amazon-dynamodb,amazon-dynamodb-index,Amazon Web Services,Amazon Dynamodb,Amazon Dynamodb Index,我有一张DynamoDB桌子。我在“Id”字段上有一个索引 我还有其他字段-状态、时间戳等,但我没有这些其他字段的索引 状态可以是“在线”、“离线”、“进行中”等 我想根据“状态”和“Id”字段获取记录的计数 用户将传递Id字段,查询需要返回基于status字段的计数。e、 g “在线”:20 “离线”:30 “进行中”:40 查询工作正常 据我所知,DynamoDb查询输出的最大大小是1MB。此限制在将任何FilterExpression应用于结果之前适用 由于表中的记录数量很大(大约100k

我有一张DynamoDB桌子。我在“Id”字段上有一个索引

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

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

我想根据“状态”和“Id”字段获取记录的计数

用户将传递Id字段,查询需要返回基于status字段的计数。e、 g

“在线”:20

“离线”:30

“进行中”:40

查询工作正常

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

由于表中的记录数量很大(大约100k),我需要通过传递“exclusivestart key”参数来反复执行查询

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

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


我正在考虑将索引扩展到status字段。因此,它将消除应用筛选器表达式的需要。

如果该字段没有索引,则需要执行表扫描以获得完整计数。您可以将扫描并行化以加快速度,也可以只对其进行索引。

如果字段没有索引,则需要执行表扫描以获得完整计数。您可以将扫描并行化以加快扫描速度,也可以只对其进行索引。

如果所有行都在计数中,索引会有什么帮助?在SQL db中,当然,如果有覆盖索引,但我没有看到如何使用DynamoDB中的索引优化此查询模式。我可能忽略了一些东西。DynamoDB基本上是一个巨大的键值存储,带有一些索引,这是对我们习惯于使用SQL的功能的让步。这是对您获得的高I/O的折衷。您可以在
状态
上放置一个全局二级索引,然后可以直接查询该字段的内容。如果没有索引,数据完全是自由形式的,数据库无法告诉您特定记录中的内容。所以,为了找到答案,你需要做一个大的表格扫描,然后自己进行查找。GSIs上的文档:是的,这很有意义。我以为你说的比你说的要多。我的错误。如果所有的行都被计数,索引会有什么帮助?在SQL db中,当然,如果有覆盖索引,但我没有看到如何使用DynamoDB中的索引优化此查询模式。我可能忽略了一些东西。DynamoDB基本上是一个巨大的键值存储,带有一些索引,这是对我们习惯于使用SQL的功能的让步。这是对您获得的高I/O的折衷。您可以在
状态
上放置一个全局二级索引,然后可以直接查询该字段的内容。如果没有索引,数据完全是自由形式的,数据库无法告诉您特定记录中的内容。所以,为了找到答案,你需要做一个大的表格扫描,然后自己进行查找。GSIs上的文档:是的,这很有意义。我以为你说的比你说的要多。我的错误。