用例会在 dynamodb 中执行完整扫描还是索引扫描?
Will the use case perform full or index scan in dynamodb?
我有一个 table 用户。
user_id -> unique, partiton key
user_city -> primary sort key
查询会执行完整扫描还是会受益于排序键?
此外,如果我在 user_city 上使用 gsi 会产生什么结果?
pseudocode: fetch all user_id that have user_city="abc"
如果您的分区键是唯一的,则您不需要排序键,拥有排序键也没有任何好处。事实上,拥有一个是个坏主意,因为现在您的 user_id
不必是唯一的。此外,您还必须使用 Query() 来 return 仅包含 user_id
的用户信息。 GetItem() 需要 user_id
和 user_city
只需定义table,user_id
为主键即可。
然后创建分区键为 user_city
.
的 GSI
您甚至不需要 GSI 上的排序键,除非您希望数据按特定顺序 returned。也许 user_id
或者 user_name
.
我有一个 table 用户。
user_id -> unique, partiton key
user_city -> primary sort key
查询会执行完整扫描还是会受益于排序键?
此外,如果我在 user_city 上使用 gsi 会产生什么结果?
pseudocode: fetch all user_id that have user_city="abc"
如果您的分区键是唯一的,则您不需要排序键,拥有排序键也没有任何好处。事实上,拥有一个是个坏主意,因为现在您的 user_id
不必是唯一的。此外,您还必须使用 Query() 来 return 仅包含 user_id
的用户信息。 GetItem() 需要 user_id
和 user_city
只需定义table,user_id
为主键即可。
然后创建分区键为 user_city
.
您甚至不需要 GSI 上的排序键,除非您希望数据按特定顺序 returned。也许 user_id
或者 user_name
.