设为首页 收藏本站
查看: 763|回复: 0

[经验分享] mongodb之慢查询分析

[复制链接]

尚未签到

发表于 2018-10-26 08:56:58 | 显示全部楼层 |阅读模式
{  "op" : "query",  #操作类型,有insert、query、update、remove、getmore、command
  "ns" : "onroad.route_model", #操作的集合
  "query" : {
  "$query" : {
  "user_id" : 314436841,
  "data_time" : {
  "$gte" : 1436198400
  }
  },
  "$orderby" : {
  "data_time" : 1
  }
  },
  "ntoskip" : 0, #指定跳过skip()方法 的文档的数量。
  "nscanned" : 2, #为了执行该操作,MongoDB在 index 中浏览的文档数。 一般来说,如果 nscanned 值高于 nreturned 的值,说明数据库为了找到目标文档扫描了很多文档。这时可以考虑创建索引来提高效率。
  "nscannedObjects" : 1,  #为了执行该操作,MongoDB在 collection中浏览的文档数。
  "keyUpdates" : 0, #索引更新的数量,改变一个索引键带有一个小的性能开销,因为数据库必须删除旧的key,并插入一个新的key到B-树索引
  "numYield" : 1,  #该操作为了使其他操作完成而放弃的次数。通常来说,当他们需要访问还没有完全读入内存中的数据时,操作将放弃。这使得在MongoDB为了放弃操作进行数据读取的同时,还有数据在内存中的其他操作可以完成
  "lockStats" : {  #锁信息,R:全局读锁;W:全局写锁;r:特定数据库的读锁;w:特定数据库的写锁
  "timeLockedMicros" : {  #该操作获取一个级锁花费的时间。对于请求多个锁的操作,比如对 local 数据库锁来更新 oplog ,该值比该操作的总长要长(即 millis )
  "r" : NumberLong(1089485),
  "w" : NumberLong(0)
  },
  "timeAcquiringMicros" : {  #该操作等待获取一个级锁花费的时间。
  "r" : NumberLong(102),
  "w" : NumberLong(2)
  }
  },
  "nreturned" : 1,  // 返回的文档数量
  "responseLength" : 1669, // 返回字节长度,如果这个数字很大,考虑值返回所需字段
  "millis" : 544, #消耗的时间(毫秒)
  "execStats" : {  #一个文档,其中包含执行 查询 的操作,对于其他操作,这个值是一个空文件, system.profile.execStats 显示了就像树一样的统计结构,每个节点提供了在执行阶段的查询操作情况。
  "type" : "LIMIT", ##使用limit限制返回数
  "works" : 2,
  "yields" : 1,
  "unyields" : 1,
  "invalidates" : 0,
  "advanced" : 1,
  "needTime" : 0,
  "needFetch" : 0,
  "isEOF" : 1,  #是否为文件结束符
  "children" : [
  {
  "type" : "FETCH",  #根据索引去检索指定document
  "works" : 1,
  "yields" : 1,
  "unyields" : 1,
  "invalidates" : 0,
  "advanced" : 1,
  "needTime" : 0,
  "needFetch" : 0,
  "isEOF" : 0,
  "alreadyHasObj" : 0,
  "forcedFetches" : 0,
  "matchTested" : 0,
  "children" : [
  {
  "type" : "IXSCAN", #扫描索引键
  "works" : 1,
  "yields" : 1,
  "unyields" : 1,
  "invalidates" : 0,
  "advanced" : 1,
  "needTime" : 0,
  "needFetch" : 0,
  "isEOF" : 0,
  "keyPattern" : "{ user_id: 1.0, data_time: -1.0 }",
  "boundsVerbose" : "field #0['user_id']: [314436841, 314436841], field #1['data_time']: [1436198400, inf.0]",
  "isMultiKey" : 0,
  "yieldMovedCursor" : 0,
  "dupsTested" : 0,
  "dupsDropped" : 0,
  "seenInvalidated" : 0,
  "matchTested" : 0,
  "keysExamined" : 2,
  "children" : [ ]
  }
  ]
  }
  ]
  },
  "ts" : ISODate("2015-10-15T07:41:03.061Z"), #该命令在何时执行
  "client" : "10.10.86.171", #链接ip或则主机
  "allUsers" : [
  {
  "user" : "martin_v8",
  "db" : "onroad"
  }
  ],
  "user" : "martin_v8@onroad"
  
}



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-626573-1-1.html 上篇帖子: mongodb之mongostat 的字段含义解析 下篇帖子: mongodb之查看状态的命令详解
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表