从mongodb获得缓慢的响应节点

问题描述:

我在我的collection中有2000万个文档。我遇到了缓慢的响应问题。所以我写了一个脚本将这个集合分成多个集合。所以现在我有一个集合1.3我采取了一个随机查询来检查响应,所以对于同一个查询,我得到的响应时间更长的集合大约是19000ms &较小的集合大约是13000ms。我在节点上使用mongoose lib来连接mongodb。 我是新来的mongodb,所以请告诉我在哪个方向我应该看看这些问题。从mongodb获得缓慢的响应节点

+0

开始(HTTPS: //docs.mongodb.com/manual/reference/explain-results/)。 – robertklep

+0

你有索引的查询字段? –

MongoDB无法执行JOINS,因此集合并没有什么收获。但是对于MongoDB和大多数其他NoSQL数据库,Its easy to use separate databases in a single instance。因此,如果您的数据集很大,您可以按照范围键将它们分组到不同的集合中,等等。进一步将这些集合分解到不同的数据库中以获得性能。我对绩效的提高表示怀疑,但理论上应该这样做。

例如:有两个数据库,在整个百万数据集的单个实例通过[使用`.explain()`]运行在蒙戈外壳查询服务不同的数据

db["collectionSet1"].AppCollection.find({application_status: {$in: ["pending", "approved", "rejected"]}}).sort({_id: -1}) 
db["collectionSet2"].OrigCollection.find({origination_status: {$in: ["originated", "approved", "rejected"]}}).sort({_id: -1}) 
+0

由于没有足够的数据,所以没有任何与OP相关的连接..... – profesor79

+0

我没有明白你的观点:“由于没有足够的数据,没有与OP连接”?显然他提到他拥有20M的数据。另外我的建议是尝试打入集合和数据库集合。现在可能他不会有区分收藏的标准,但他总是可以将它们分成不同的数据库。每个数据库然后可以有不同的集合。 – Cyclotron3x3