我有一个DynamoDB表,我需要在其中查询两个不同的属性,有时一个查询,有时另一个查询,但永远不会同时查询这两个属性。
假设我有一个属性A和一个属性B,其他属性在这里无关紧要。
我正在考虑设计此表,其中哈希键为属性A,GSI为属性B。
这样,我总是执行query
而不是scan
。
现在我想到一个问题,关于属性A(即ID)或关于属性B(GSI),哪种查询更快?
如果有区别,我可以切换,让B作为Id,让A作为GSI。
谢谢
答案 0 :(得分:1)
GSI是一个实际的DynamoDB表,其中复制了所有主表数据。
如果仅project仅使用所需的属性,则效率会更高。
考虑到散列键不是唯一的,效率可能会降低,您可能最终要对这些结果进行迭代以找到所需的键。