[英]Slow Mongoose Requests
我一直在慢猫鼬查询。 我将范围缩小为Mongoose创建对象的方式或db服务器请求中的实际延迟。 我几乎没有数据库中的任何数据(4个集合中的每个集合中的<1000个对象),并且手动运行了查询(与产品中的查询类似)并对它们进行了概要分析,它们都运行了2-4毫秒。
我无法通过在线搜索/查看文档找出两个大问题:
这是我看到的一些延迟时间:
Login
localhost + localDB = 58ms
localhost + mongoHQ = 127ms
heroku + mongoHQ = 287ms
Get Data
localhost + localDB = 281ms
localhost + mongoHQ = 1657ms
heroku + mongoHQ = 2190ms
更新1
我想出了如何记录查询并检查了其中的一些查询。 我认为它可以归结为一个带有大量填充调用的查询-我注意到在生成查询的填充部分时,Mongoose输出一个Mongo查询,例如:
users.find({ _id: { '$in': [ ObjectId("531ec0e17c0b16a82be4f506"),
ObjectId("531ec0e17c0b16a82be4f506"), ObjectId("531ec0e17c0b16a82be4f506") ...
其中ID重复多次(在这种情况下为数百次)-我认为这是速度下降的原因,并测试了代码,发现每次填充调用都会使请求时间增加约0.3s-.5s。 填充调用也在数组字段上运行-这还将查询的ID数保持在100到1000(低)(重复)之间。
进行填充呼叫时,是否可以删除重复的条目?
尝试更改查询以使用“精简”选项,然后查看时间是否减少了。 这将绕过猫鼬实体的创建。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.