我对AWS dynamoDB很陌生。在我的研究中,我遇到了一个场景:“把它想象成一家银行,在出纳员窗口前排起了长队。如果每个人都排在一位出纳员的前面,那么可以为更少的客户提供服务。跨多个不同的出纳员窗口分配客户的效率更高。分配客户的一个好的分区钥匙可能是客户号码,因为每个客户都不同。”
我有一个问题,如何找出每个出纳员在同一个表中遇到的客户号码(作为分区键的客户号)。
发布于 2017-10-14 08:05:42
把它想象成一家银行,在出纳员窗口前排着长队。如果每个人都在一个出纳员前排队,那么可以为更少的顾客提供服务。在许多不同的出纳员窗口中分配客户是更有效的。分配客户的一个好的分区密钥可能是客户编号,因为它对每个客户来说是不同的。
上面这句话解释的是DynamoDB存储分布是如何发生的,以及它如何影响数据查询。假设分区键是单独的数据库服务器。当您只有一个分区键时,所有查询都会转到该服务器,从而提高其利用率,从而限制在单个服务器上进行吞吐量。如果您有多个分区键,内部DynamoDB可以从多个服务器中并行地找到这些项,而不会碰到单个分区服务器瓶颈。
客户编号是分区键,出纳员是行数据,所以我必须对每个客户号运行查询才能找到特定出纳员的数据吗?
如果将数据存储在名为Customers的DynamoDB表中,仅以客户号作为主键,则需要扫描整个DynamoDB表,这是非常低效率的。
如果您只想直接查询特定的出纳员项。
https://stackoverflow.com/questions/46742091
复制相似问题