我需要在AWS DynamoDB上创建一个具有如下结构的新表:
{
"email" : String (key),
... : ...,
"someStuff" : SomeType,
... : ...,
"listOfIDs" : Array<String>
}
此表包含用户&#39;数据和我经常查询的字符串列表(参见listOfIDs
)
因为我不希望每次都scan
表,因为它的速度很慢而导致用户链接到该特定ID,因此我无法创建索引,因为它是一个数组,而不是a&#34;简单&#34;类型,我怎么能改善我的表的结构?我是否应该使用不同的表格,其中包含我所有的ID以及与他们相关联的用户#34; flat&#34;结构体?还有其他办法吗?
谢谢大家!
答案 0 :(得分:1)
我是否应该使用另一张表,其中我拥有所有ID以及与他们相关联的用户#34; flat&#34;结构
如果你想利用DynamoDB的并行性来提高查询性能,我认为这是你最好的选择。
如果您的query
存储为集,则另一个选项可能是在listOfIDs
中使用CONTAINS
表达式,但我无法想象随着你的桌子的增长,这将在性能方面进行扩展。
答案 1 :(得分:1)
或许另一张表格如下:
ID string / hash key,
Email string / range key,
Any other attributes you may want to access
ID
和email
的独特组合将允许您搜索“ID列表”。您可能希望在此表中包含其他属性,以免您需要执行其他查询。