温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

mongodb慢查询

发布时间:2020-08-05 15:47:04 来源:网络 阅读:2096 作者:wcy3781 栏目:MongoDB数据库

开启 Profiling 功能


1. 直接在启动参数里直接进行设置

      启动MongoDB时加上–profile=1 即可

     还可以慢查询时间(即大于多少时间被记入慢查询)--slowms 200


2. 可以通过db.getProfilingLevel()命令来获取当前的Profile级

       db.getProfilingLevel()

     

          0 – 不开启

        1 – 记录慢命令 (默认为>100ms)

        2 – 记录所有命令


        db.setProfilingLevel( level , slowms ) 

  db.setProfilingLevel( 1 , 10 );


3.查询慢查询记录

        db.system.profile.find() 

          列出执行时间长于某一限度(5ms)的 Profile 记录:

          > db.system.profile.find( { millis : { $gt : 5 } } ) 



4.慢查询参数详解

  ts-该命令在何时执行.

  millis Time-该命令执行耗时,以毫秒记.

  info-本命令的详细信息.

  query-表明这是一个query查询操作.

  ntoreturn-本次查询客户端要求返回的记录数.比如, findOne()命令执行时 ntoreturn 为 1.有limit(n) 条件时ntoreturn为n.

  query-具体的查询条件(如x>3).

  nscanned-本次查询扫描的记录数.

  reslen-返回结果集的大小.

  nreturned-本次查询实际返回的结果集.

  update-表明这是一个update更新操作.

  fastmod-Indicates a fast modify operation. See Updates. These operations are normally quite fast.

  fastmodinsert – indicates a fast modify operation that performed an upsert.

  upsert-表明update的upsert参数为true.此参数的功能是如果update的记录不存在,则用update的条件insert一条记录.

  moved-表明本次update是否移动了硬盘上的数据,如果新记录比原记录短,通常不会移动当前记录,如果新记录比原记录长,那么可能会移动记录到其它位置,这时候会导致相关索引的更新.磁盘操作更多,加上索引更新,会使得这样的操作比较慢.

  insert-这是一个insert插入操作.

  getmore-这是一个getmore 操作,getmore通常发生在结果集比较大的查询时,第一个query返回了部分结果,后续的结果是通过getmore来获取的。


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI