DynamoDB 快速搜索复杂数据类型



我需要在 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

IDemail的独特组合将允许您搜索"ID列表"。您可能希望在此表中包括其他属性,以避免需要执行其他查询。

我是否应该使用不同的表,其中我的所有 ID 和用户都以"平面"结构链接到它们?

我认为,如果您想利用 DynamoDB 的并行性来提高查询性能,这将是您最好的选择。

如果您的listOfIDs存储为一个集合,另一种选择可能是在query中使用CONTAINS表达式,但我无法想象这会随着表的增长而扩展性能。

最新更新