繁体   English   中英

过滤“开始于”是否会导致DynamoDB中的高读取?

[英]Does filtering “start with” cause high reads in DynamoDB?

我有一个假想的数据库,可以跟踪全球的街道地址。 分区键是国家/地区,排序键是指街道的州和邮政编码。 例如,一项可能看起来像CA#90210

(显然这存在很大的本地化和分布问题,但这是一个假设)

我在美国有10,000个项目,如果我查询和过滤排序键为“以CA开头”(这可能返回900个项目),而分区键为美国,DynamoDB将仅对它找到的900个项目使用RCU,否则DynamoDB仅将RCU用于它10,000个带有“ US”分区键的项目?

同样,如果我确实在邮政编码中使用了邮政编码,那么仅将其保留在数据库的另一列中以供Web应用程序读取是否正确?

如果我查询并过滤排序键为“以CA开头”(这可能返回900项),而分区键为US,则DynamoDB仅将RCU用于900项

是的, starts with查询starts with只会触摸以该值开头的项目。

换句话说, Query()始终需要使用索引,该索引可以是具有复合主键的表,也可以是本地/全局二级索引。

Scan()是一个远离的地方,必须读取表中的每条记录。

如果我确实在邮政编码中使用了邮政编码,是否仅将其保留在数据库的另一列中以供Web应用程序读取是否正确?

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM