我有一个存储大小为2.7MB的表。我正在尝试使用dynamoose扫描方法获取所有记录,但速度非常慢(获取2.7MB需要35秒)
代码是用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变得更快?
发布于 2020-01-11 06:45:30
我面临着同样的缓慢,然后我尝试使用延迟参数。当我使用0.01而不是1来表示延迟时,我能够更快地获得记录。我已经在prod中使用了几个星期了,现在没有任何问题。
https://stackoverflow.com/questions/56314362
复制相似问题