mongodb存储大型文档,查询速度非常慢
我在mongodb服务器中将一个很长的字符串存储到我的文档中,我的文档看起来像mongodb存储大型文档,查询速度非常慢,mongodb,mongodb-query,mongodb-java,Mongodb,Mongodb Query,Mongodb Java,我在mongodb服务器中将一个很长的字符串存储到我的文档中,我的文档看起来像 { "_id": ObjectId("5280efdbe4b062c93b582118"), "viewID": 1, "content": "a very long string" } 在同一个收藏中大约有数百份这样的文件。我已为收藏编制了索引 问题是我只执行了一个非常简单的查询 db.blog.find({viewID:1}); 然后等待响应的时间很长(超过几个小时),并且没有显示任何
{
"_id": ObjectId("5280efdbe4b062c93b582118"),
"viewID": 1,
"content": "a very long string"
}
在同一个收藏中大约有数百份这样的文件。我已为收藏编制了索引
问题是我只执行了一个非常简单的查询
db.blog.find({viewID:1});
然后等待响应的时间很长(超过几个小时),并且没有显示任何错误消息,服务器状态正常。但是我只添加了db.blog.find({viewID:1}).limit(1)
mongodb立即返回结果
如何解决问题或提高性能
以下是我的解释:
db.blog.find({viewID:1}).explain();
{
"cursor" : "BtreeCursor viewID_1",
"isMultiKey" : false,
"n" : 377,
"nscannedObjects" : 377,
"nscanned" : 377,
"nscannedObjectsAllPlans" : 377,
"nscannedAllPlans" : 377,
"scanAndOrder" : false,
"indexOnly" : false,
"nYields" : 0,
"nChunkSkips" : 0,
"millis" : 45,
"indexBounds" : {
"viewID" : [
[
1,
1
]
]
},
"server" : "Server:27017"
}
这里是colStat:
db.blog.stats();
{
"ns" : "***.blog",
"count" : 98582,
"size" : 2330759632,
"avgObjSize" : 23642.851960804204,
"storageSize" : 2958364672,
"numExtents" : 18,
"nindexes" : 2,
"lastExtentSize" : 778276864,
"paddingFactor" : 1,
"systemFlags" : 1,
"userFlags" : 0,
"totalIndexSize" : 6540800,
"indexSizes" : {
"_id_" : 4055296,
"viewID_1" : 2485504
},
"ok" : 1
}
您有多少文档?文档有多大?请告诉我们您是如何为集合编制索引的。另外,请在命令末尾添加
.explain()
后运行查询,并发布输出。它告诉我们是否以及如何使用索引。我猜viewID没有被索引?让我们把事情弄清楚。如果运行db.blog.find({viewID:1})从shell运行代码>需要几个小时,但是如果运行db.blog.find({viewID:1}).explain()代码>它会给您提供“millis”:45
?是@zero323,但在localhost上也会出现同样的情况。