DynamoDB中的數字類型的存儲空間是Number
還是string
類型?什麼是DynamoDB編號和字符串數據類型存儲空間
說我有一個號碼(1234789)。如果我將它存儲爲number
類型,那麼它將只需要4個字節,而作爲string
它將需要7個字節?
DynamoDB是否將所有數字存儲爲bigdecimal?
DynamoDB中的數字類型的存儲空間是Number
還是string
類型?什麼是DynamoDB編號和字符串數據類型存儲空間
說我有一個號碼(1234789)。如果我將它存儲爲number
類型,那麼它將只需要4個字節,而作爲string
它將需要7個字節?
DynamoDB是否將所有數字存儲爲bigdecimal?
DynamoDb是託管的雲服務,所以我認爲他們在內部存儲數據的方式並不清楚。
但是,他們將Numbers作爲字符串轉換爲語言兼容性支持,並且影響RCU/WCU的其中一個因素是傳輸數據大小。
因此,就您關心的是計算預配吞吐量和成本而言,Number大小應視爲String大小。
作爲每DynamoDB Documentation : Datatypes:
字符串
字符串是Unicode的使用UTF-8二進制編碼。字符串 的長度必須大於零,並受最大DynamoDB 項目大小限制爲400 KB的限制。
如果定義一個主鍵屬性作爲字符串類型屬性,則 下列附加約束條件適用:
- 對於一個簡單的主鍵,第一屬性值的最大長度(分區鍵)是2048字節。
- 對於組合主鍵,第二個屬性值(排序鍵)的最大長度爲1024個字節。
編號
數字可以爲正,負或零。數字的精度可能高達38 - 超過這將導致例外。
- 正範圍:1E-130到9.9999999999999999999999999999999999999E + 125
- 負範圍:-9.9999999999999999999999999999999999999E + 125到-1E-130
在DynamoDB,數字表示爲可變長度。尾部零將被削減。
所有的數字都通過網絡發送到DynamoDB爲字符串,跨越語言和庫 最大化的兼容性。然而, DynamoDB將它們視爲數學 操作的數字類型屬性。
注意:如果數字精度很重要,您應該使用從數字類型轉換的字符串將數字傳遞給DynamoDB。
我希望,這可以幫助你得到你的答案。
@ user1846749,這是否幫助您解決您的問題? – LuFFy
[DynamoDB中的ItemSize]的可能重複(http://stackoverflow.com/questions/8988389/itemsize-in-dynamodb) – RomanMinkin