我需要在 AWS DynamoDB 上创建一个新表,该表的结构如下所示:
{
"email" : String (key),
... : ...,
"someStuff" : SomeType,
... : ...,
"listOfIDs" : Array<String>
}
此表包含用户数据和我经常查询的字符串列表(请参阅listOfIDs
(。
由于速度慢,我不想每次都scan
表以使用户链接到该特定 ID,并且由于它是 Array 而不是"简单"类型,我无法创建索引,因此我如何改进表的结构?我是否应该使用不同的表,其中我的所有 ID 和用户都以"平面"结构链接到它们?还有其他办法吗?
谢谢大家!
也许另一个表看起来像:
ID string / hash key,
Email string / range key,
Any other attributes you may want to access
ID
和email
的独特组合将允许您搜索"ID列表"。您可能希望在此表中包括其他属性,以避免需要执行其他查询。
我是否应该使用不同的表,其中我的所有 ID 和用户都以"平面"结构链接到它们?
我认为,如果您想利用 DynamoDB 的并行性来提高查询性能,这将是您最好的选择。
如果您的listOfIDs
存储为一个集合,另一种选择可能是在query
中使用CONTAINS
表达式,但我无法想象这会随着表的增长而扩展性能。