本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 SQL 中,沒有 SELECT
子句的 WHERE
陳述式會傳回資料表中的每個資料列。在 Amazon DynamoDB 中,Scan
操作會執行同樣的操作。在這兩種案例中,您可以擷取所有項目或部分項目。
無論是使用 SQL 或 NoSQL 資料庫,建議您謹慎使用掃描,因為掃描會使用大量系統資源。有時候適合掃描 (例如掃描小型資料表) 或必須掃描 (例如大量匯出資料)。但一般來說,您應將應用程式設計為避免執行掃描。如需詳細資訊,請參閱在 DynamoDB 中查詢資料表。
注意
執行大量匯出也會為每個分割區建立至少 1 個檔案。每個檔案的所有項目都來自該特定分割區的雜湊金鑰空間。
使用 SQL 掃描資料表
使用 SQL 時,您可以使用不指定 WHERE
子句的 SELECT
陳述式來掃描資料表,並擷取其中的所有資料。您可以在結果中請求一或多個資料行。或者,您可以使用萬用字元 (*) 請求所有資料行。
以下為使用 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 相容查詢語言) 對資料表執行掃描。
借助 DynamoDB API,可使用 Scan
操作,存取資料表中的每個項目或次要索引,以傳回一或多個項目和項目屬性。
// Return all of the data in the table { TableName: "Music" }
// Return all of the values for Artist and Title { TableName: "Music", ProjectionExpression: "Artist, Title" }
Scan
操作也提供了 FilterExpression
參數,您可以用它來捨棄不想要顯示在結果中的項目。FilterExpression
會在掃描完後並在結果傳回給您前套用。(此動作不建議與大型資料表一起使用。即使只傳回少量的符合項目,您仍須為整個 Scan
支付費用。)