在 DynamoDB 中,哪个更快?按 Id 或二级索引属性查询?

In DynamoDB, which is faster? Querying by Id or by a secondary index attribute?

我有一个 DynamoDB table,我需要在其中查询两个不同的属性,有时是一个,有时是另一个,但绝不会同时查询两个。

假设我有属性A和属性B,其他属性在这里无关紧要。

我正在考虑设计这个 table,哈希键是属性 A,GSI 是属性 B。 这样我总是执行 query 而不是 scan.

现在我想到一个问题,在属性 A(即 Id)或属性 B (GSI) 上哪个查询更快?

如果有一些不同,我可以切换,让 B 作为 Id,让 A 作为 GSI。

谢谢

GSI 是一个实际的 DynamoDB table,复制了所有主要 table 数据。

如果您只 project 需要的属性,效率会更高。

考虑到散列键不是唯一的,这可能会降低效率,您最终可能会迭代这些结果以找到所需的结果。