我们正面临猫鼬一个非常令人讨厌的问题。
save
方法大约需要500/600毫秒,并且非常消耗CPU。
我们有一个包含50000个数组元素的子文档,每次使用push进行更新时,该元素都会获取一个新元素(历史记录)。
代码如下:
..... very large function
variable.value = parseFloat(value);
variable.history.push([{
value: parseFloat(value),
timestamp: dateNow
}]);
await variable.save();
..... end function
我有历史记录和_id的索引。
任何提示为何要花这么长时间并消耗60%... 80%的CPU吗?
谢谢
答案 0 :(得分:0)
我遇到了类似的问题,四处张望,除了修改架构之外,似乎没有其他合理的解决方案。
在文档具有超过100K条目的大型子文档阵列之后,我的保存功能将花费很长时间。
我从文档中删除了数组,并创建了一个新的架构。我创建了一个新数组,而不是推送到子文档数组。