选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

关系(SQL)数据库和 DynamoDB 在创建表方面的差异

聚焦模式
关系(SQL)数据库和 DynamoDB 在创建表方面的差异 - Amazon DynamoDB

表是关系数据库和 Amazon DynamoDB 中的基本数据结构。关系数据库管理系统 (RDBMS) 要求您在创建表时定义表的架构。相比之下,DynamoDB 表没有架构—与主键不同,您在创建表时无需定义任何属性或数据类型。

以下章节将使用 SQL 创建表的方式与使用 DynamoDB 创建表的方式进行了比较。

使用 SQL 创建表

通过 SQL,您将使用 CREATE TABLE 语句创建表,如以下示例所示。

CREATE TABLE Music ( Artist VARCHAR(20) NOT NULL, SongTitle VARCHAR(30) NOT NULL, AlbumTitle VARCHAR(25), Year INT, Price FLOAT, Genre VARCHAR(10), Tags TEXT, PRIMARY KEY(Artist, SongTitle) );

此表的主键包含 ArtistSongTitle

您必须定义表的所有列和数据类型以及表的主键。(如有必要,您稍后可以使用 ALTER TABLE 语句更改这些定义。)

许多 SQL 实现可让您将表的存储规范定义为 CREATE TABLE 语句的一部分。除非另外指明,否则使用默认存储设置创建表。在生产环境中,数据库管理员可以帮助确定最佳存储参数。

使用 DynamoDB 创建表

使用 CreateTable 操作可创建预调配的模式表,同时指定参数,如下所示:

{ TableName : "Music", KeySchema: [ { AttributeName: "Artist", KeyType: "HASH" //Partition key }, { AttributeName: "SongTitle", KeyType: "RANGE" //Sort key } ], AttributeDefinitions: [ { AttributeName: "Artist", AttributeType: "S" }, { AttributeName: "SongTitle", AttributeType: "S" } ], ProvisionedThroughput: { // Only specified if using provisioned mode ReadCapacityUnits: 1, WriteCapacityUnits: 1 } }

此表的主键包括 Artist(分区键)和 SongTitle(排序键)。

您必须向 CreateTable 提供以下参数:

  • TableName – 表名称。

  • KeySchema – 用于主键的属性。有关更多信息,请参阅表、项目和属性主键

  • AttributeDefinitions – 键架构属性的数据类型。

  • ProvisionedThroughput (for provisioned tables) – 每秒需对此表执行的读取和写入次数。DynamoDB 将保留足量的存储和系统资源,以便始终满足您的吞吐量需求。如有必要,您稍后可使用 UpdateTable 操作后更改这些设置。由于存储分配完全由 DynamoDB 管理,因此您无需指定表的存储要求。

隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。