DynamoDB 项目大小和格式 - Amazon DynamoDB
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

DynamoDB 项目大小和格式

DynamoDB 表是无架构的(主键除外),因此,表中的项目可具有不同的属性、大小和数据类型。

项目的总大小是其属性名称和值的长度总和,加上任何适用的开销,如下所述。您可以使用以下准则来估算属性大小:

  • 字符串是使用 UTF-8 二进制编码的 Unicode。字符串的大小为(属性名称的 UTF-8 编码字节数)+(UTF-8 编码的字节数)

  • 数字的长度是可变的,最多 38 个有效位。系统会删减开头和结尾的 0。数字的大小约为(属性名称的 UTF-8 编码字节数)+(每两个有效数字 1 个字节)+(1 字节)

  • 必须先采用 base64 格式对二进制值进行编码,然后才能将其发送到 DynamoDB,不过使用值的原始字节长度来计算大小。二进制属性的大小为(属性名称的 UTF-8 编码字节数)+(原始字节数)。

  • 空属性或布尔属性的大小为(属性名称的 UTF-8 编码字节数)+(1 字节)

  • 对于类型为 ListMap 的属性,不论其内容如何,都需要 3 个字节的开销。List或的大小Map(属性名称的 UTF-8 编码字节数)+ 总和(嵌套元素的大小)+(3 字节)。空List或的大小Map(属性名称的 UTF-8 编码字节数)+(3 字节)

  • 每个 ListMap 元素还需要 1 字节的开销。

注意

建议您选择较短的属性名,而不要选择较长的属性名。这可以帮助您减少所需的存储量,但也可能会降低您使用的 RCU/WCU 量。

出于存储计费目的,每个项目都包括按项目的存储开销,这取决于您启用的功能。

  • DynamoDB 中的所有项目都需要 100 字节的存储开销才能进行索引。

  • 某些 DynamoDB 功能(全局表、事务、使用 DynamoDB 的 Kinesis Data Streams 更改数据捕获)需要额外的存储开销,才能考虑因启用这些功能而产生的系统创建属性。例如,全局表需要额外 48 字节的存储开销。