2015-12-28 19 views
1

我想創建一個dynamodb表的全局索引。表中的大多數記錄對於全局索引的hashKey具有「未定義」值。 dynamodb如何用'未定義'的hashKey分割這些記錄?我只使用非未定義的hashKey值查詢全局索引。我想知道這些'未定義'的hashKey記錄是否會影響查詢性能。dynamodb如何處理hashKey爲未定義的記錄

回答

1

如果未定義,則表示它們的實際字符串值爲「未定義」,它們將位於索引中,這可能會通過潛在創建熱碎片來傷害性能。

但是,如果通過未定義您的意思是這些屬性沒有任何與它們相關的值,那麼這將最終創建所謂的稀疏索引。有一個稀疏索引意味着這些項目根本不在GSI中,這對性能很有好處,因爲寫入缺少這些屬性的對象不需要寫入GSI。

稀疏索引是DynamoDB的一項強大功能,因爲它提供了訪問項目的另一種方式。例如,具有稀疏索引意味着它可以具有實際上更少的記錄,使GSI對某些用例的掃描實際可行。

+0

感謝您的回覆。稀疏索引正是我所需要的。 –

+0

您可以從這裏的AWS文檔中閱讀有關稀疏索引的更多信息:https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GuidelinesForGSI.html#GuidelinesForGSI.SparseIndexes – JaredHatfield

相關問題