比使用$ in进行MongoDB查询更快捷

时间:2016-08-14 23:03:14

标签: mongodb meteor

在高峰时段,我的网站的MongoDB响应速度非常慢,而我正试图找出原因。我认为可能是罪魁祸首的一个问题是这样的(来自Meteor应用程序):

Players.find({_id: {$in: playerIds}});

其中playerIds是包含15个唯一字符串的数组。 Players集合中有600个左右的玩家,_id字段中有一个索引。

有更快的方法来执行此查询吗?有没有办法重组数据库,使其更快?这甚至看起来像是一个有问题的查询,还是最有可能在其他地方出现的问题?

2 个答案:

答案 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)

问题中提到的查询速度很快,无需进行任何操作。