复合键分区键查询成本疑问:查询最新timestamp时的计费范围
复合键查询最新条目的成本说明
当你的表使用name作为分区键、timestamp作为排序键时,查询指定name对应的最新timestamp条目,不需要承担分区内所有条目的查询成本,仅需为读取的最新那一条数据付费。
DynamoDB的排序键是按顺序存储的,针对指定分区,你可以通过优化后的Query操作直接定位到最新条目:
- 构造查询时指定
KeyConditionExpression匹配目标name,设置ScanIndexForward = false(让排序键倒序排列),同时加上Limit = 1。 - 这种情况下,DynamoDB会直接定位到该分区内排序键值最大的条目(也就是最新的
timestamp记录),只会读取这一条数据,因此仅按这一条的读容量单位(RCU)计费。
额外说明:
- 只有当你未设置
Limit=1、扫描整个分区的所有条目时,才会按读取的全部数据量计费;只要用上述精准查询方式,成本就只对应单条最新数据。 - 具体的RCU消耗取决于这条最新数据的大小:单条数据小于等于4KB时消耗1个读容量单位,超过4KB则按每4KB递增计算。
内容的提问来源于stack exchange,提问作者Mooncrater
相关产品推荐
相关产品推荐

