mongodb 之慢查询


mongodb中慢查询日志

1.开启查询日志.

(1)动态开启,可以选择性的对指定DB开启慢查询日志,但服务器重启后慢查询日志又要人工手动开启。

db.setProfilingLevel(1,300)

setProfilingLevel有两个参数,第一参数表示慢查询日志开关(可使用的值为0,1,2

0:表示关闭慢查询日志,1:表示开启慢查询日志,2:表示记录所有数据库中的查询),

第二个参数为慢查询阀值,单位是毫秒,默认情况下阀值为100ms。

(2).配置文件中开启,永久生效。对所有的数据DB生效

在mongo的配置文件中加上一下两个参数即可永久开启慢查询。

profile:表示慢查询日志开关.

slowms:慢查询日志阀值。

和setProfilingLevel中的两个参数对应。

2.查看服务器慢查询日志状态

db.getProfilingStatus()

rs0:SECONDARY>  db.getProfilingStatus();

{ "was" : 1, "slowms" : 100 }

db.getProfilingLevel()

rs0:SECONDARY> db.getProfilingLevel()

1

3.查看满查询日志。

一般情况下,当开启慢查询日志后会在每个db下面生成一个集合(system.profile).

这个集合里面记录了所有当前数据库查询时间超过阀值的查询记录。

rs0:PRIMARY> db.system.profile.find({ns:/^gow/}).limit(1)

{"op" : "update",

"ns" : "gow.broadcasts",

"query" : { "_id" : ObjectId("54b73af6bab3047b5593c456") },

"updateobj" : { "_id" : ObjectId("54b73af6bab3047b5593c456"), "content" : "各新石"},

"nscanned" : 0,

"nscannedObjects" : 0,

"nMatched" : 1,

"nModified" : 0,

"upsert" : true,

"keyUpdates" : 0,

"numYield" : 0,

"lockStats" : { "timeLockedMicros" : { "r" : NumberLong(0) , "w" : NumberLong(10) } },

"millis" : 157,

"execStats" : {  },

"ts" : ISODate("2015-01-26T19:05:00.118Z"),

"client" : "10.136.3.117",

"allUsers" : [ { "user" : "root", "db" : "admin" } ], "user" : "[email protected]" }

键值解释:

op:操作类型。

ns:执行操作的对象集合

millis:操作所花时间,毫秒

client:执行操作的客服端。

allUsers:执行操作的mongodb账号

ts:时间戳(操作的发生时间)

时间: 2024-12-08 13:33:05

mongodb 之慢查询的相关文章

MongoDB的使用学习之(七)MongoDB的聚合查询(两种方式)附项目源码

先来张在路上-- 此项目是用Maven创建的,没有使用Maven的,自己百度.谷歌去:直接用Junit测试就行,先执行里面的save方法,添加10000条测试数据提供各种聚合查询等. 废话不多说,上干货-- 一.MongoDB数据库的配置(mongodb.xml) 以下是我自己的配置,红色字体请改为自己本机的东东,你说不懂设置端口,不会创建数据库名称,不会配置用户名密码,那有请查阅本系列的第4节(MongoDB的使用学习之(四)权限设置--用户名.密码.端口==),你说懒得设置,那就@#¥%--

MongoDB新增及查询数据(一)

新增操作    insert函数会添加一个文档到集合里面.例如我们要登记一个人的信息,首先我们在shell力创建一个局部变量person,其记录了人的姓名和性别,我们通过db.persons.insert(person)想集合persons中插入一条记录,通过db.persons.findOne()查询刚才插入的记录.                                                                              图 7.新增操作插入的时

第十二章 springboot + mongodb(复杂查询)

简单查询:使用自定义的XxxRepository接口即可.(见 第十一章 springboot + mongodb(简单查询)) 复杂查询:使用MongoTemplate以及一些查询条件构建类(BasicDBList.BasicDBObject.Criteria等) 1.application.properties 1 #mongodb note:mongo3.x will not use host and port,only use uri 2 #spring.data.mongodb.hos

MongoDB 进阶-关联查询

[苏州需要工作的加我QQ,内推介绍费平分] MongoDB 进阶 1.数据库命令 a.命令的工作原理 drop命令,在shell中删除一个集合,执行db.refactor.drop().其实这个函数实际运行的是drop命令, 可以用runCommand来达到一样的效果: db.runCommand({"drop":"refactor"}) {         "nIndexesWas" : 1,         "msg" :

mongodb学习(五) 查询

1. 按条件查询: db.users.find({"name":"MM1"}) 2.find的第二个参数可以指定要返回的字段:这里1 表示要显示的字段,0 表示要剔除的字段 db.users.find({"name":"MM1"},{"name":1,"age":1}) db.users.find({"name":"MM1"},{"nam

MongoDB学习笔记(查询)

1.  基本查询:    构造查询数据.    > db.test.findOne()    {         "_id" : ObjectId("4fd58ecbb9ac507e96276f1a"),         "name" : "stephen",         "age" : 35,         "genda" : "male",      

【转】MongoDB学习笔记(查询)

原文地址 MongoDB学习笔记(查询) 基本查询: 构造查询数据. > db.test.findOne() { "_id" : ObjectId("4fd58ecbb9ac507e96276f1a"), "name" : "stephen", "age" : 35, "genda" : "male", "email" : "[em

mongoDB常见的查询索引(三)

1. _id索引 _id索引是绝大多数集合默认建立的索引 对于每个插入的数据,MongoDB会自动生成一条唯一的_id字段. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 > db.jerome_2.collection.insert({x:2}) WriteResult({ "nInserted" : 1 }) > db.jerome_2.collection.getIndexes() [     {         "v&quo

PHP操作Mongodb之高级查询篇

本文主要讲解PHP中Mongodb的除了增删改查的一些其他操作. 在PHP操作Mongodb之增删改查篇中我们介绍了PHP中Mongodb的增加.删除.修改及查询数据的操作.本文主要是将查询时用到的高级知识跟大家分享下. 1.查询时的排序 在关系型数据库的查询中,往往会用到排序.例如时间倒序,点击率升序啦等等.在Mongodb的查询中,也有排序功能的. 语法格式: $db->find()->sort(array('age' => 1));    //按age字段升序排序.1为升序,-1为