1

我有一个存储大小为 2.7MB 的表。我正在尝试使用 dynamoose 扫描方法获取所有记录,但速度很慢(35 秒才能获得 2.7MB)

代码是用 node.js (typescript) 编写的。首先我使用了扫描方法并检查了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 更快?

4

1 回答 1

0

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

于 2020-01-10T22:45:30.100 回答