Amazon web services Dynamo DB查询和扫描行为问题

Amazon web services Dynamo DB查询和扫描行为问题,amazon-web-services,amazon-dynamodb,aws-appsync,Amazon Web Services,Amazon Dynamodb,Aws Appsync,我在DynamoDB表中查询/扫描时想到了这个场景 如果我想在一个表中获得一个数据,而该表中有20k个数据,而我要查找的数据位于第19k行,该怎么办。例如,我使用的扫描限制为1000。即使它第19次没有返回任何项目,它也会消耗吞吐量吗?。比如说, 我有一个用户表: 类型UserTable{ userId:ID! 用户名:String, 密码:String }根据 扫描操作始终扫描整个表或辅助索引。信息技术 然后过滤掉值以提供所需的结果 添加从结果集中删除数据的额外步骤 性能 如果可能,应避免在

我在DynamoDB表中查询/扫描时想到了这个场景

如果我想在一个表中获得一个数据,而该表中有20k个数据,而我要查找的数据位于第19k行,该怎么办。例如,我使用的扫描限制为1000。即使它第19次没有返回任何项目,它也会消耗吞吐量吗?。比如说,

我有一个用户表:

类型UserTable{
userId:ID!
用户名:String,
密码:String
}
根据

扫描操作始终扫描整个表或辅助索引。信息技术 然后过滤掉值以提供所需的结果 添加从结果集中删除数据的额外步骤

性能

如果可能,应避免在大型表上使用扫描操作 或使用删除多个结果的筛选器进行索引。另外,作为一张桌子或 索引增长,扫描操作变慢

读取单位

扫描操作检查每个项目的请求值,并可以 将为中的大型表或索引使用已配置的吞吐量 单一操作。为加快响应时间,请设计您的表格和 索引,以便应用程序可以使用查询而不是扫描


为了获得更好的性能,我建议您使用查询创建一个更少的读取单位消耗。扫描操作将查看整个表并访问所有记录,以找出其中哪些符合您的筛选条件。因此,它将消耗足够的吞吐量来检索所有访问的记录。扫描操作也非常慢,尤其是当表大小较大时

对于第二个问题,您可以使用UserName作为哈希键在表上创建二级索引。然后可以将扫描操作转换为查询。这样,它只会消耗足够获取一条记录的吞吐量