关系(SQL)数据库和 DynamoDB 在从表中读取数据方面的差异 - Amazon DynamoDB

关系(SQL)数据库和 DynamoDB 在从表中读取数据方面的差异

利用 SQL,您可使用 SELECT 语句从表中检索一个或多个行。可使用 WHERE 子句来确定返回给您的数据。

这与使用 Amazon DynamoDB 不同,后者提供以下操作来读取数据:

  • ExecuteStatement 将会检索表中的单个或多个项目。BatchExecuteStatement 可以通过单个操作检索不同表中的多个项目。所有这些操作均使用 PartiQL,一种 SQL 兼容的查询语言。

  • GetItem – 从表中检索单个项目。这是读取单个项目的最高效方式,因为它将提供对项目物理位置的直接访问。(DynamoDB 还提供 BatchGetItem 操作,允许在单个操作中执行最多 100 次 GetItem 调用。)

  • Query – 检索具有特定分区键的所有项目。在这些项目中,您可以将条件应用于排序键并仅检索一部分数据。Query 针对存储数据的分区提供快速、高效的访问。(有关更多信息,请参阅 DynamoDB 中的分区和数据分布。)

  • Scan – 检索指定表中的所有项目。(不应对大型表使用此操作,因为这可能会占用大量系统资源。)

注意

利用关系数据库,您可以使用 SELECT 语句联接多个表中的数据并返回结果。联接是关系模型的基础。要确保联接高效运行,应持续优化数据库及其应用程序的性能。DynamoDB 是一个不支持表连接的非关系 NoSQL 数据库。相反,应用程序一次从一个表中读取数据。

以下各节介绍读取数据的各种使用案例,以及如何使用关系数据库和 DynamoDB 执行这些任务。