DynamoDB 項目大小和格式 - Amazon DynamoDB

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

DynamoDB 項目大小和格式

除了主索引鍵之外,DynamoDB 資料表不具結構描述,因此資料表中的項目全部會有不同的屬性、大小和資料類型。

項目的總大小是其屬性名稱和值長度的總和,加上下列任何適用的管理費用。您可以使用下列準則來預估屬性大小:

  • 字符串是具有 UTF -8 二進制編碼的 Unicode。字符串的大小是(屬性名稱的 UTF -8 編碼字節數)+(UTF-8 編碼的字節數)。

  • 數字的長度會不同,最多 38 個有意義位數。前後的零會截去。數字的大小約為(屬性名稱的 UTF -8 編碼字節數)+(每兩個有效數字 1 個字節)+(1 個字節)。

  • 必須先以 base64 格式編碼二進位值,才能將它傳送至 DynamoDB,但使用值的原始位元組長度來計算大小。二進制屬性的大小是(屬性名稱的 UTF -8 編碼字節數)+(原始字節數)。

  • null 屬性或布爾屬性的大小為(屬性名稱的 UTF -8 編碼字節數)+(1 個字節)。

  • 不論內容為何,類型為 ListMap 的屬性都需要 3 位元組的額外負荷。a List 或的大小Map(屬性名稱的 UTF -8 編碼字節數)+ 總和(嵌套元素的大小)+(3 個字節)。空List或的大小Map(屬性名稱 UTF -8 編碼的位元組數) + (3 個位元組)。

  • 每個 ListMap 元素也需要 1 位元組的額外負荷。

注意

建議您選擇較短的屬性名稱,而不是較長的屬性名稱。這可以幫助您減少所需的存儲量,但也可以降低RCU/WCUs您使用的量。

基於儲存體計費目的,每個項目會包含每個項目的儲存體額外負荷,這取決於您啟用的功能。

  • DynamoDB 中的所有項目都需要 100 個位元組的儲存額外負荷來進行索引。

  • 某些 DynamoDB 功能 (使用 DynamoDB 進行 Kinesis Data Streams 的全域資料表、交易、變更資料擷取) 需要額外的儲存額外負荷來考量啟用這些功能所產生的系統建立屬性。例如,全域資料表需要額外 48 個位元組的儲存體額外負荷。