DynamoDB中Number
和string
类型的存储空间有什么不同呢?
假设我有一个数字(1234789)。如果我将其存储为number
类型,则只需要4个字节,而作为string
类型则需要7个字节?
DynamoDB是否将所有数字都存储为bigdecimal?
DynamoDB中Number
和string
类型的存储空间有什么不同呢?
假设我有一个数字(1234789)。如果我将其存储为number
类型,则只需要4个字节,而作为string
类型则需要7个字节?
DynamoDB是否将所有数字都存储为bigdecimal?
字符串
字符串采用UTF-8二进制编码的Unicode。字符串的长度必须大于零,并受到DynamoDB项大小限制400 KB的约束。
如果您将主键属性定义为字符串类型属性,则适用以下附加约束:
数字
数字可以是正数、负数或零。数字的精度可达到38位,超过这个范围将导致异常。
在DynamoDB中,数字表示为可变长度。前导和尾随零被修剪。
所有数字都作为字符串发送到DynamoDB,以最大化跨语言和库的兼容性。但是,DynamoDB将它们视为数值类型属性进行数学运算。
注意:如果数字精度很重要,您应该使用从数字类型转换而来的字符串将数字传递给DynamoDB。
我希望这可以帮助你找到答案。