我需要搜索與此類似的數據庫。如何在不使用掃描功能的情況下添加和檢索具有特定值的項目? DynamoDb
哪些選項我必須讓所有的人的用戶ID在數據庫中,如果它有1Milllion這樣的條目。
我聽說table.scan(FilterExpression=Attr('time').eq("now")).
可能會非常昂貴,當我有一個巨大的數據庫。
有沒有一種方法可以在沒有閱讀(掃描)整個數據庫的情況下,按照時間「現在」查找所有userids。
我需要搜索與此類似的數據庫。如何在不使用掃描功能的情況下添加和檢索具有特定值的項目? DynamoDb
哪些選項我必須讓所有的人的用戶ID在數據庫中,如果它有1Milllion這樣的條目。
我聽說table.scan(FilterExpression=Attr('time').eq("now")).
可能會非常昂貴,當我有一個巨大的數據庫。
有沒有一種方法可以在沒有閱讀(掃描)整個數據庫的情況下,按照時間「現在」查找所有userids。
簡答:將二級索引添加到您的表中。
在您的具體示例中,您可以創建一個帶有「userid」的「本地」二級索引,因爲它是分區鍵,並添加「時間」作爲排序鍵。
請使用帶散列鍵的全局二級索引(GSI)作爲time
屬性和userid
作爲分區鍵。您可以使用Query API
並獲取time
屬性的數據,而不掃描表中的所有項目。
請注意,LSI
(本地二級索引)可能無法正常工作,因爲散列鍵必須使用查詢API。當您需要表格的替代排序鍵時使用LSI。