扫描表方面的差异
在 SQL 中,不带 SELECT
子句的 WHERE
语句将返回表中的每个行。在 Amazon DynamoDB 中,Scan
操作可执行相同的工作。在这两种情况下,您都可以检索所有项目或部分项目。
无论您使用的是 SQL 还是 NoSQL 数据库,都应谨慎使用扫描操作,因为它们会占用大量系统资源。有时,扫描是适合的 (例如,扫描小型表) 或不可避免的 (例如,执行数据的批量导出操作)。但通常来说,您应设计应用程序以避免执行扫描。有关更多信息,请参阅 在 DynamoDB 中查询表。
注意
执行批量导出还将为每个分区创建至少 1 个文件。每个文件中的所有项目都来自于该特定分区的哈希密钥空间。
使用 SQL 扫描表
使用 SQL 时,您可以在不指定 SELECT
子句的情况下使用 WHERE
语句扫描表并检索其所有数据。您可以在结果中请求一个或多个列。或者,如果您使用通配符 (*),则可请求所有列。
以下是使用 SELECT
语句的示例。
/* Return all of the data in the table */ SELECT * FROM Music;
/* Return all of the values for Artist and Title */ SELECT Artist, Title FROM Music;
在 DynamoDB 中扫描表
在 Amazon DynamoDB 中,您可以使用 DynamoDB API 或 PartiQL(一种与 SQL 兼容的查询语言)对表执行扫描。