• mongodb可以通过profile来监控数据 (mongodb性能优化)


    开启 Profiling  功能 ,对慢查询进行优化:

    mongodb可以通过profile来监控数据,进行优化。

    查看当前是否开启profile功能用命令

    db.getProfilingLevel()  返回level等级,值为0|1|2,分别代表意思:0代表关闭,1代表记录慢命令,2代表全部

    db.setProfilingLevel(level);  #level等级,值同上

    level为1的时候,慢命令默认值为100ms,更改为db.setProfilingLevel(level,slowms)如db.setProfilingLevel(1,50)这样就更改为50毫秒

    通过db.system.profile.find() 查看当前的监控日志。

    如:

    > db.system.profile.find({millis:{$gt:500}})
    { "ts" : ISODate("2011-07-23T02:50:13.941Z"), "info" : "query order.order reslen:11022 nscanned:672230  
    query: { status: 1.0 } nreturned:101 bytes:11006 640ms", "millis" : 640 }
    { "ts" : ISODate("2011-07-23T02:51:00.096Z"), "info" : "query order.order reslen:11146 nscanned:672302  
    query: { status: 1.0, user.uid: { $gt: 1663199.0 } }  nreturned:101 bytes:11130 647ms", "millis" : 647 }

     这里值的含义是

     ts:命令执行时间

    info:命令的内容

    query:代表查询

    order.order: 代表查询的库与集合

    reslen:返回的结果集大小,byte数

    nscanned:扫描记录数量

    nquery:后面是查询条件

    nreturned:返回记录数及用时

    millis:所花时间

    如果发现时间比较长,那么就需要作优化。

    比如nscanned数很大,或者接近记录总数,那么可能没有用到索引查询。

    reslen很大,有可能返回没必要的字段。

    nreturned很大,那么有可能查询的时候没有加限制。

    原文转自:http://my.oschina.net/baowenke/blog/97756

  • 相关阅读:
    swift2.2当中的inout参数的使用
    Swift的7大误区
    Swift 设计指南之 编程规范
    我为什么用 SQLite 和 FMDB 而不用 Core Data
    ios学习笔记——代理设计模式
    ios学习笔记——UIImagePickerController
    ios学习笔记——保存图片到相册
    KVC中setValuesForKeysWithDictionary: (转载)
    ios学习笔记——GCD简介
    ios学习笔记——操作队列NSOperation的基本操作
  • 原文地址:https://www.cnblogs.com/unqiang/p/3736953.html
Copyright © 2020-2023  润新知