mongodb慢查询
2016-09-07 13:57
274 查看
开启 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来获取的。
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来获取的。
相关文章推荐
- MongoDB .Net Driver(C#驱动) - 内嵌数组/嵌入文档的操作(增加、删除、修改、查询(Linq 分页))
- mongodb模糊查询
- MongoDB入库、更新、查询效率简单测试
- Mongodb基础用法及查询操作
- MongoDB基本用法(增删改高级查询、mapreduce)
- springData+mongodb 条件查询+条件分页排序
- MongoVUE下实现MongoDB的Group分组查询
- 关于mongodb按照字段模糊查询方法
- Mongodb源码分析--查询结果集封装
- JAVA - mongodb 聚合查询方式三
- mongodb 的查询如何使用索引
- java MongoDB 字符串日期类型查询和日期类型查询
- MongoDB JAVA API高级查询示例(对应于上一篇)
- mongodb_查询操作使用_条件查询、where子句等(转)
- MongoDB入门5――查询(一)
- MongoDB的基础查询和索引操作方法总结
- 三、MongoDB 查询(待续)
- 查询解释mongodb入门-8 查询3
- mongodb在java中的分页查询
- [Database] MongoDB (4) Dot Notation 内嵌对象查询