在高峰时段,我的网站的MongoDB响应速度非常慢,而我正试图找出原因。我认为可能是罪魁祸首的一个问题是这样的(来自Meteor应用程序):
Players.find({_id: {$in: playerIds}});
其中playerIds
是包含15个唯一字符串的数组。 Players
集合中有600个左右的玩家,_id
字段中有一个索引。
有更快的方法来执行此查询吗?有没有办法重组数据库,使其更快?这甚至看起来像是一个有问题的查询,还是最有可能在其他地方出现的问题?
答案 0 :(得分:0)
我也经历过这些方面的事情,我发现了一些真正有用的东西(我希望它有所帮助)。
mup / mupx:如果你正在使用mup / mupx这样的东西,那么旧版本的Mongodb在docker中特别(看起来)很慢。我建议你做的是在服务器上安装Mongodb 3.2,然后将Mongodb地址插入到env下的mup配置中
例如MONGO_URL:'mongodb:// your-server-address / your-app',我发现使用本地地址比使用全局地址更快(如果你想分片,这是一种很好的做法)。
有趣的未来:当未解决的http调用等待未来时,我的内存泄漏非常大。这反过来使mongodb客户端需要将近90秒来完成一项简单的任务。因此它实际上可能不是mongodb,检查所有代码并确保方法不会花费太长时间。
答案 1 :(得分:0)
问题中提到的查询速度很快,无需进行任何操作。