2017-08-16 59 views
0

我需要搜索與此類似的數據庫。如何在不使用掃描功能的情況下添加和檢索具有特定值的項目? DynamoDb

enter image description here enter image description here

哪些選項我必須讓所有的人的用戶ID在數據庫中,如果它有1Milllion這樣的條目。

我聽說table.scan(FilterExpression=Attr('time').eq("now")).可能會非常昂貴,當我有一個巨大的數據庫。

有沒有一種方法可以在沒有閱讀(掃描)整個數據庫的情況下,按照時間「現在」查找所有userids。

回答

0

簡答:將二級索引添加到您的表中。

在您的具體示例中,您可以創建一個帶有「userid」的「本地」二級索引,因爲它是分區鍵,並添加「時間」作爲排序鍵。

0

請使用帶散列鍵的全局二級索引(GSI)作爲time屬性和userid作爲分區鍵。您可以使用Query API並獲取time屬性的數據,而不掃描表中的所有項目。

請注意,LSI(本地二級索引)可能無法正常工作,因爲散列鍵必須使用查詢API。當您需要表格的替代排序鍵時使用LSI。

相關問題