Amazon DynamoDB
开发人员指南 (API Version 2012-08-10)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

扫描表

在 SQL 中,不带 WHERE 子句的 SELECT 语句将返回表中的每个行。在 DynamoDB 中,Scan 操作可执行相同的工作。在这两种情况下,您都可以检索所有项目或部分项目。

无论您使用的是 SQL 还是 NoSQL 数据库,都应谨慎使用扫描操作,因为它们会占用大量系统资源。有时,扫描是适合的 (例如,扫描小型表) 或不可避免的 (例如,执行数据的批量导出操作)。但通常来说,您应设计应用程序以避免执行扫描。

SQL

在 SQL 中,可在不指定 WHERE 子句的情况下使用 SELECT 语句扫描表并检索其所有数据。您可以在结果中请求一个或多个列。或者,如果您使用通配符 (*),则可请求所有列。

下面是一些示例:

Copy
/* Return all of the data in the table */ SELECT * FROM Music;
Copy
/* Return all of the values for Artist and Title */ SELECT Artist, Title FROM Music;

DynamoDB

DynamoDB 提供以相似方式工作的 Scan 操作。下面是一些示例:

Copy
// Return all of the data in the table { TableName: "Music" }
Copy
// Return all of the values for Artist and Title { TableName: "Music", ProjectionExpression: "Artist, Title" }

Scan 操作还提供一个 FilterExpression 参数以丢弃您希望不在结果中出现的项目。在扫描整个表后且结果返回给您之前,应用 FilterExpression。 (建议不要对大型表这样做:即使仅返回几个匹配项目,您仍需为整个 Scan 付费。)

注意

有关使用 Scan 的代码示例,请参阅 DynamoDB 入门

本页内容: