筛选"start with"会导致 DynamoDB 中的读取量较高吗?



我有一个假设数据库,该数据库跟踪街道在全球范围内地址。分区密钥是国家,排序钥匙是指街道的州和邮政法规。例如,一个项目看起来像CA#90210

(显然,这有很大的本地化和分销问题,但这是一个假设的(

我在美国有10,000个项目,如果我查询并过滤"以 CA"开头的键(这可能返回900个项目(,而分区键则将键向我们发送,将DynamoDB仅对IT的900个项目使用RCUS找到或带有"我们"分区密钥的10,000个项目?

在同一注意事项上,如果我确实在"排序密钥"中使用邮政编码,那么将其保存在数据库中的另一列中是正确的,仅供我的Web应用程序读取?

如果我查询和过滤"以CA开头"(可能返回900个项目(的排序键,并且分区键向我们进行,将DynamoDB仅对900个项目使用RCU

是的, starts with查询只会触摸项目的起点。

换句话说, Query()总是需要使用索引,要么具有复合主键的表或本地/全局次要索引。

Scan()是要远离的

,必须阅读表中的每个记录。

如果我确实在"排序密钥"中使用邮政编码,那么将其保留在数据库中的另一列中是正确的,只是为了读取我的Web应用程序吗?

可能,否则,您的客户将不得不为每个记录拆分排序密钥本身。拥有两次值所需的额外空间并不重要。

最新更新