本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
DynamoDB 項目大小和格式
除了主索引鍵之外,DynamoDB 資料表不具結構描述,因此資料表中的項目全部會有不同的屬性、大小和資料類型。
項目的總大小是其屬性名稱和值長度的總和,加上下列任何適用的管理費用。您可以使用下列準則來預估屬性大小:
-
字串是 Unicode 搭配 UTF-8 二進位編碼。字串的大小為 (屬性名稱的 UTF-8 編碼位元組數目) + (UTF-8 編碼位元組數目)。
-
數字的長度會不同,最多 38 個有意義位數。前後的零會截去。數字的大小大約是 (屬性名稱的 UTF-8 編碼位元組數) + (每兩個有效數字 1 個位元組) + (1 個位元組)。
-
必須先以 base64 格式編碼二進位值,才能將它傳送至 DynamoDB,但使用值的原始位元組長度來計算大小。二進位屬性的大小為 (屬性名稱的 UTF-8 編碼位元組數目) + (原始位元組數目)。
-
Null 屬性或布林屬性的大小為 (屬性名稱的 UTF-8 編碼位元組數) + (1 位元組)。
-
不論內容為何,類型為
List
或Map
的屬性都需要 3 位元組的額外負荷。List
或 的大小Map
是 (屬性名稱的 UTF-8 編碼位元組數目) + 總和 (巢狀元素的大小) + (3 位元組) 。空白List
或的大小Map
為 (屬性名稱的 UTF-8 編碼位元組數目) + (3 個位元組)。 -
每個
List
或Map
元素也需要 1 位元組的額外負荷。
注意
建議您選擇較短的屬性名稱,而不是較長的屬性名稱。這可協助您減少所需的儲存量,但也可以降低您使用的 RCU/WCUs 量。
基於儲存體計費目的,每個項目會包含每個項目的儲存體額外負荷,這取決於您啟用的功能。
-
DynamoDB 中的所有項目都需要 100 個位元組的儲存額外負荷來進行索引。
-
某些 DynamoDB 功能 (使用 DynamoDB 進行 Kinesis Data Streams 的全域資料表、交易、變更資料擷取) 需要額外的儲存額外負荷來考量啟用這些功能所產生的系統建立屬性。例如,全域資料表需要額外 48 個位元組的儲存體額外負荷。