用Dynamoose扫描所有记录非常慢

时间:2019-05-26 14:24:26

标签: node.js aws-sdk dynamoose

我有一个存储空间为2.7MB的表。我正在尝试使用动态扫描方法获取所有记录,但是它非常慢(需要35秒才能获得2.7MB)

代码用node.js(打字稿)编写。首先,我使用了扫描方法并检查了lastKey:

this.ReportsModel.scan().exec(function (err, data, lastKey) {
if(lastKey) { 
    this.ReportsModel.scan().startAt(lastKey).exec(function (err, data, lastKey) {
        return callback(null, data)
    });
}

})

之后,我尝试使用scan.all。通过Dynamoose API,我了解到递归扫描之间的默认延迟为1秒。为了最小化扫描时间,我尝试最小化延迟时间并将延迟设置为1毫秒并更改了代码:

this.ReportsModel.scan().all(1).exec((err, data)

但是扫描仍然很慢。 我该怎么做才能使scan.all更快?

1 个答案:

答案 0 :(得分:0)

我面临着同样的缓慢,然后尝试使用delay参数。当我使用0.01而不是1进行延迟时,我能够更快地获取记录。 从几周以来,我一直在产品中使用它,没有任何问题。