我有一个包含约30k记录的小型Mongo数据库。 简单查询,使用5-6个参数需要几乎一秒钟(考虑整个DB在RAM中)。 任何人都可以建议我做错了吗?
2015-11-26T18:41:29.540 + 0200 [conn3]命令vvpilotdb2. $ cmd命令: count {count:“TestResults”,query:{Test:5.0,IsAC:true, InputMode:0.0,IsOfficialTest:true,IsSanity:false,IsStress: false,IsUnderNoise:false,MetalRodSize:9.0},字段:{}} planSummary:COLLSCAN keyUpdates:0 numYields:1 locks(micros)r:1397227 reslen:48 944ms
这是db.stats()。我自己没有分配任何索引。所有设置 - 默认。:
> db.stats()
{
"db" : "vvpilotdb2",
"collections" : 5,
"objects" : 28997,
"avgObjSize" : 7549.571610856296,
"dataSize" : 218914928,
"storageSize" : 243347456,
"numExtents" : 17,
"indexes" : 3,
"indexSize" : 964768,
"fileSize" : 469762048,
"nsSizeMB" : 16,
"dataFileVersion" : {
"major" : 4,
"minor" : 5
},
"extentFreeList" : {
"num" : 0,
"totalSize" : 0
},
"ok" : 1
}
答案 0 :(得分:2)
在MongoDB
中,_id
字段默认为索引编制。
您应该索引要用于进行查询的字段。 也可以在多个字段及其顺序(升序/降序)上创建复合索引。
以下是相同的文档: