こんにちは!
DynamoDBのScanオペレーションを使用するデメリット、リスクを解説します。
DynamoDBはAmazon Web Services(AWS)のNoSQLデータベースサービスです。DynamoDBのScanオペレーションを使用すると、テーブル内のすべてのデータを取得することができます。しかし、Scanオペレーションを使用すると、データベースへの負荷が増加し、パフォーマンスが低下してしまいます。本記事では、Scanオペレーションを使用するデメリットを解説します。
一般的に、Scan
オペレーションは、DynamoDB の他の操作よりも効率が悪いです。
Scan
オペレーションは常にテーブルまたはセカンダリインデックス全体をスキャンし、その後アイテムの値をフィルターして必要な結果を抽出し、最後に全取得結果からデータを削除する余分なステップを追加します。
そのため、Scan
オペレーションを使用すると、データベースへの負荷が増加します。Scanオペレーションは、テーブル内のすべてのデータを取得するため、データベースへの負荷が増加し、データベースのパフォーマンスが低下します。
Scan
オペレーションは常にテーブルまたはセカンダリインデックス全体をスキャンimport { DynamoDB } from 'aws-sdk';
const dynamoDb = new DynamoDB({
apiVersion: '2012-08-10',
region: 'us-east-1'
});
const params = {
TableName: 'MyTable'
};
dynamoDb.scan(params, (err, data) => {
if (err) {
console.log(err);
} else {
console.log(data);
}
});
GSI、インデックス属性によるqueryを使用した効率的なアイテム取得を設計します。
事前にアクセスパターンを要件定義し、適切なインデックス設計を行う必要があります。
本記事では、DynamoDBのScanオペレーションを使用するデメリットを解説しました。Scanオペレーションを使用すると、データベースへの負荷が増加し、パフォーマンスが低下してしまうので、避けましょう。
サーバーレス開発、低コストなAWS開発内製化はお気軽にお問い合わせください。