情景:
如果我读取/写入一个10Bytes的项目,Dynamo DB会将吞吐量四舍五入为4Kb以进行读取,将1Kb用于写入。如果我的整个数据库由10-50字节的项目组成,并且我希望每秒大约进行10次读/写操作,则效率非常低。
问题:
有没有办法克服这个问题并利用每个吞吐量的全部潜力
答案 0 :(得分:0)
以下是“读取容量单位消耗”的规则:
GetItem-从表中读取单个项目。确定数量 容量单位GetItem将消耗,获取项目大小并将其舍入 直到下一个4 KB的边界。如果您指定了强烈一致性 读取,这是所需的容量单位数。最终 一致读取(默认值),取此数字并除以2。
例如,如果您读取的是3.5 KB的项目,则DynamoDB会对其进行舍入 项目大小为4 KB。如果您读取10 KB的项目,则DynamoDB会对其进行舍入 项目大小为12 KB。
请参阅https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/CapacityUnitCalculations.html
所以也许你可以切换到最终一致的阅读。
PutItem
和UpdateItem
:
对于PutItem,UpdateItem和DeleteItem操作,DynamoDB轮次 项目大小到下一个1 KB。例如,如果您输入或删除 一个1.6 KB的项目,DynamoDB将项目大小舍入为2 KB。