从表中读取数据时 SQL 与 DynamoDB 之间的主要区别 - Amazon DynamoDB
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

从表中读取数据时 SQL 与 DynamoDB 之间的主要区别

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

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

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

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

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

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

注意

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

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