我在DynamoDB中有Messages表。它有四列发件人,时间戳,邮件,收件人。我想知道不是使用四列中的任何一列创建分区键,为什么不创建另一个列用于分区目的连接发件人&时间戳&收件人。DynamoDB中分区键的优化
因此,这列将保存数据,如JohnSmithID1461754484307SallyMcDonaldID。
通过这样做,当搜索来自特定发件人&收件人组合的邮件时,我可以通过使用此列使用查询来查询(如以&结尾)。还有其他一些利用这一栏的方法。
问题1.我被过度试图使用一列,而不是散布我查询到的几个列在这里事情复杂?
问题2.采取这个方向是否有明显的性能好处?如果我消除列SenderId & RecipientID数据大小的目的
问题3:这是设计模式不仅值得吗? (我需要时间戳排序键列)
先生,是ü说,如果我想用三个滤波器参数,我不会因为有dynamodb表做查询,尽管有摆在所有三个各自列二级指标? – shle2821
@ shle2821我在谈论一个场景,当你需要查询一个可以由三个或更多属性组合定义的项目时。 DynamoDB允许使用最多两个属性(分区键+排序键)形成主键。更多信息[here](http://stackoverflow.com/questions/32620215/3-fields-composite-primary-key-unique-item-in-dynamodb) –
感谢您的信息。那么,让我问你一下。单独留下主键时,我会根据senderID&timestamp&recipientID创建一个排序键?因此,用户的设备将三个属性连接在一起并发送到DynamoDB。由于它是一个排序键,我可以用“begin with”,“end with”等来查询。您对这种设计模式有什么看法? – shle2821