我想询问一下 DynamoDB 的读/写容量逻辑。我在这里查看了他们的文档 https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ProvisionedThroughput.html 我还用谷歌搜索了它们与数据库中的项目的关系,但我不明白它们的定义。
所以就我而言,
我有一张这样的桌子 称为user_id
的哈希键和称为flag_key
的排序键
每个项目都是这样的{user_id: 'user-1', flag_key: 'refresh_token', flag_value: 'some-random-refresh-token'}
或{user_id: 'user-1', flag_key: 'roles', flag_value: ['role-a', 'role-b']}
以及其他与上述类似的事情。
现在,如果我想查询 3 件事,例如refresh_token
、roles
和login_history
我会查询dynamoDB 3次。
所以我的问题是,
DynamoDB 是否为此向我收取 3 个读取容量的费用?即使合并的项目小于 4KB?
是的,如果您进行 3 个不同的查询,您将至少使用 3 个 RCU。
但是,由于要检索同一分区键的项目,因此可以使用单个查询操作。只要您进行单个查询,并且它返回您需要的所有数据,并且该数据的总大小小于 4KB,您将只使用 1 个 RCU(读取容量单位(。