【发布时间】:2017-09-09 07:01:09
【问题描述】:
我有带有索引timestamp_1, timestamp_2 and user_id 字段的位置集合。执行查询时(您可以在以下日志中看到),然后查询大约需要 3 分钟(175670 毫秒)。我不知道为什么会这样!!
我附上了以下 MongoDB-Log。
任何人都可以根据日志向我解释一下,我该如何优化它?
2017-04-12T17:04:33.759+0000 I COMMAND [conn167] 查询 位置集合查询:{ orderby:{ timestamp_1:1 },$query:{ $and: [ { timestamp_1: { $lte: 1492016294486.0 } }, { timestamp_2: { $gte: 1491993563400.0 } }, { user_id: "jkfjlsjfflki-14asddsd" } } } planSummary: IXSCAN { user_id: 1 }, IXSCAN { user_id: 1 } ntoreturn:1000 ntoskip:0 keysExamined:27254 docsExamined:27254 hasSortStage:1 cursorExhausted:1 keyUpdates:0 writeConflicts:0 numYields:3350 nreturned:67 reslen:176574 locks:{ Global: { 获取计数:{ r:6702 } },数据库:{获取计数:{ r:3351 } }, 集合:{ acquireCount: { r: 3351 } } } 175670ms
还有一个问题:我正在创建自己的“_id”字段值,所以这种方式有什么缺点吗??我只创建字符串值并期望 mongoDb 索引它没有任何问题。
2017-04-12T17:04:41.979+0000 我命令 [conn150] 查询 db.users 查询:{orderby:{_id:1},$查询:{_id: "USR-dfhsddf-14905426shfkjdhf" } } plan总结:IDHACK ntoreturn:1 ntoskip:0 keysExamined:1 docsExamined:1 idhack:1 cursorExhausted:1 keyUpdates:0 writeConflicts:0 numYields:0 nreturned:1 reslen:1291 锁:{全局:{acquireCount:{r:2}},数据库:{acquireCount: { r: 1 } },集合:{ acquireCount: { r: 1 } } } 2627ms
提前致谢!
【问题讨论】:
标签: mongodb database-performance