我是AWS dynamoDB的新手。在我的研究中,我遇到了一个场景,"把它想象成一个在柜员窗前排成一排的银行。如果每个人都在一个出纳员排队,那么可以为更少的顾客服务。在不同的柜员窗口分配客户更有效。用于分发客户的良好分区密钥可能是客户编号,因为每个客户都不同。"
我有一个问题,如何找出每个柜员遇到的客户编号与同一个表(客户编号作为分区密钥)。
答案 0 :(得分:0)
把它想象成一个在柜员窗前排成一排的银行。如果 每个人都在一个出纳员排队,可以为更少的顾客服务。它是 更高效地将客户分配到许多不同的柜员 视窗。分发客户的好分区键可能是 客户编号因为每个客户都不同。
上述句子的解释是关于DynamoDB存储分发如何发生以及它如何影响数据查询。假设分区键作为单独的数据库服务器。如果只有一个分区密钥,则所有查询都会转到该服务器,从而提高其利用率,从而限制单个服务器的吞吐量。如果您有多个分区键,则内部DynamoDB可以从多个服务器并行查找项目,而不会遇到单个分区服务器瓶颈。
客户编号是分区键,而柜员是行数据 我必须对每个客户编号运行查询以查找a的数据 特别的出纳员?
如果将数据存储在名为Customers的DynamoDB表中,只有客户编号作为主键,要查找特定的出纳员,则需要扫描整个DynamoDB表,这是非常低效的。
如果您只想直接查询特定的出纳项目。