Indexing DynamoDB全局索引中的ItemSize

Indexing DynamoDB全局索引中的ItemSize,indexing,amazon-dynamodb,Indexing,Amazon Dynamodb,已经有一个关于如何计算表格的问题了。但是,根据到目前为止阅读的文档,我不清楚如何计算全局索引查询返回的项目的项目大小 是表中项的所有属性的大小,还是仅投影到索引中的项的所有属性的大小 到目前为止,我发现了以下材料: 对于查询和扫描操作,DynamoDB根据项目大小而不是返回给应用程序的数据量来计算消耗的已配置吞吐量。因此,无论您使用ProjectionExpression参数请求所有属性(默认行为)还是仅请求其中一些属性,消耗的容量单位数都将相同。- 对于查询,所有返回的项都被视为单个读取操作。

已经有一个关于如何计算表格的问题了。但是,根据到目前为止阅读的文档,我不清楚如何计算全局索引查询返回的项目的项目大小

是表中项的所有属性的大小,还是仅投影到索引中的项的所有属性的大小

到目前为止,我发现了以下材料:

对于查询和扫描操作,DynamoDB根据项目大小而不是返回给应用程序的数据量来计算消耗的已配置吞吐量。因此,无论您使用ProjectionExpression参数请求所有属性(默认行为)还是仅请求其中一些属性,消耗的容量单位数都将相同。-

对于查询,所有返回的项都被视为单个读取操作。因此,DynamoDB计算所有项目的总大小,然后向上取整到下一个4KB边界。-

二级索引中的数据由从表投影或复制到索引中的属性组成。创建二级索引时,可以定义索引的备用键以及要在索引中投影的任何其他属性。DynamoDB将这些属性以及表中的主键属性复制到索引中。然后,您可以像查询或扫描表一样查询或扫描索引。-


有人知道答案吗?

它基于索引项的大小

从(我的)重点:

对于全局二级索引查询,DynamoDB以与针对表的查询相同的方式计算配置的读取活动唯一的区别是,计算基于索引项的大小,而不是表中项目的大小。读取容量单位的数量是所有返回项目的所有预测属性大小的总和;然后将结果四舍五入到下一个4KB边界。有关DynamoDB如何计算调配吞吐量使用率的更多信息,请参阅


令人惊叹的。谢谢你发现了。而且,我对答案本身也很满意。到目前为止,我一直在想,当您可以向表查询和筛选结果中添加ProjectionExpression时,为什么要使用索引,特别是考虑到适当优化吞吐量成本的复杂性。现在,它更有意义了。