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