我有一个约400个文档的mongoDB集合。我有一个REST方法,现在只返回此集合上的.find({})查询的结果(我正在使用mongoose btw)。当我尝试以每秒约40个请求对此方法进行基准测试时,我发现响应时间非常糟糕(~10秒),在我对应用程序进行分析后,火焰图看起来像这样
当查询类似于20-30个对象时,性能变得可以容忍,但如果它超过100,那么应用程序就会在反序列化结果时遇到困难。这是正常的吗?我能为此做点什么吗?
提前致谢。
答案 0 :(得分:0)
在猫鼬中使用“精益”方法可能会对您有所帮助。
'lean'方法告诉猫鼬不要将对象从db转换为猫鼬模式对象,而是将普通的JavaScript对象转换为反序列化速度。
示例
Students.find({name: 'Josh'}).lean().exec((err, docs) => {
...
});
另请参阅
http://www.tothenew.com/blog/high-performance-find-query-using-lean-in-mongoose-2/
Use lean in mongoose with callback