千家信息网

mongo如何查询慢日志以及创建索引

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章给大家分享的是有关mongo如何查询慢日志以及创建索引的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1.查看mongodb慢日志是否开起use LogDB;db.g
千家信息网最后更新 2026年10月31日mongo如何查询慢日志以及创建索引

这篇文章给大家分享的是有关mongo如何查询慢日志以及创建索引的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

1.查看mongodb慢日志是否开起

use LogDB;

db.getProfilingStatus();

2.开启慢日志,设置超过100毫秒的操作为慢操作

db.setProfilingLevel(1,100);

3.查看慢日志内容

db.system.profile.find().sort({$natural:-1})

日志,

shard3:PRIMARY> db.system.profile.find().sort({$natural:-1})

{ "op" : "query", "ns" : "LogDB.Flashxxx", "command" : { "find" : "Flashxxx", "filter" : { "UserId" : { "$in" : [ "1111111" ] } }, "shardVersion" : [ Timestamp(0, 0), ObjectId("000000000000000000000000") ], "lsid" : { "id" : UUID("d08179ba-ecbd-4f9d-92e7-cd491e5a1d8a"), "uid" : BinData(0,"iwsImy7Wfk2mAp4o/uuD+I9mpETQTxb5PXo26pIQkS4=") }, "$clusterTime" : { "clusterTime" : Timestamp(1558696199, 3), "signature" : { "hash" : BinData(0,"Ht7EWhYpVLiy+DbH8Cu1Ijs6PNk="), "keyId" : NumberLong("6647500774429425691") } }, "$client" : { "driver" : { "name" : "mongo-csharp-driver", "version" : "2.7.0.0" }, "os" : { "type" : "Windows", "name" : "Microsoft Windows 6.3.9600", "architecture" : "x86_64", "version" : "6.3.9600" }, "platform" : ".NET Framework 4.0.0.0", "mongos" : { "host" : "new-mongo01:20000", "client" : "10.205.33.32:59518", "version" : "3.6.9" } }, "$configServerState" : { "opTime" : { "ts" : Timestamp(1558696196, 12), "t" : NumberLong(3) } }, "$db" : "LogDB" }, "keysExamined" : 0, "docsExamined" : 37428, "cursorExhausted" : true, "numYield" : 292, "locks" : { "Global" : { "acquireCount" : { "r" : NumberLong(586) } }, "Database" : { "acquireCount" : { "r" : NumberLong(293) } }, "Collection" : { "acquireCount" : { "r" : NumberLong(293) } } }, "nreturned" : 1, "responseLength" : 673, "protocol" : "op_msg", "millis" : 104, "planSummary" : "COLLSCAN", "execStats" : { "stage" : "COLLSCAN", "filter" : { "UserId" : { "$eq" : "11111111115" } }, "nReturned" : 1, "executionTimeMillisEstimate" : 100, "works" : 37430, "advanced" : 1, "needTime" : 37428, "needYield" : 0, "saveState" : 292, "restoreState" : 292, "isEOF" : 1, "invalidates" : 0, "direction" : "forward", "docsExamined" : 37428 }, "ts" : ISODate("2019-05-24T11:09:59.346Z"), "client" : "10.205.34.91", "allUsers" : [ { "user" : "__system", "db" : "local" } ], "user" : "__system@local" }

注意COLLSCAN 是全表扫描。

查看执行计划:

db.FlashClientData.find({UserId: 1000493111}).explain()

shard3:PRIMARY> db.FlashClientData.find({UserId: 100049111}).explain()

{

"queryPlanner" : {

"plannerVersion" : 1,

"namespace" : "LogDB.Flashxxx",

"indexFilterSet" : false,

"parsedQuery" : {

"UserId" : {

"$eq" : 10x0493111

}

},

"winningPlan" : {

"stage" : "COLLSCAN",<<<<<<<<----全表扫描

"filter" : {

"UserId" : {

"$eq" : 10x0493111

}

},

"direction" : "forward"

},

"rejectedPlans" : [ ]

},

创建索引:

db.Flashxxx.createIndex( {UserId: 1} ) // 按age字段创建升序索引

db.Flashxxx.getIndexes() // 查询集合的索引信息

shard3:PRIMARY> db.FlashClientData.find({UserId: 100049111}).explain()

{

"queryPlanner" : {

"plannerVersion" : 1,

"namespace" : "LogDB.FlashClientData",

"indexFilterSet" : false,

"parsedQuery" : {

"UserId" : {

"$eq" : 100049111

}

},

"winningPlan" : {

"stage" : "FETCH",

"inputStage" : {

"stage" : "IXSCAN",,<<<<<<<<

"keyPattern" : {

"UserId" : 1

},

"indexName" : "UserId_1",

"isMultiKey" : false,

"multiKeyPaths" : {

"UserId" : [ ]

},

"isUnique" : false,

删除指定的索引dropIndex()

db.COLLECTION_NAME.dropIndex("INDEX-NAME")

如,删除集合sites中名为"name_1_domain_-1"的索引:

单字段索引 (Single Field Index)

db.person.createIndex( {age: 1} )

{age: 1} 代表升序索引,也可以通过{age: -1}来指定降序索引,对于单字段索引,升序/降序效果是一样的。

单索引创建唯一索引,如:

db.persons.createIndex({name:1},{unique:true})

复合索引 (Compound Index)

db.person.createIndex( {age: 1, name: 1} )

多key索引 (Multikey Index)

{"name" : "jack", "age" : 19, habbit: ["football, runnning"]}

db.person.createIndex( {habbit: 1} ) // 自动创建多key索引

db.person.find( {habbit: "football"} )

感谢各位的阅读!关于"mongo如何查询慢日志以及创建索引"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

索引 日志 查询 内容 升序 字段 更多 篇文章 不错 实用 代表 信息 可以通过 效果 文章 看吧 知识 中名 参考 帮助 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技公司 互联网黑科技 南京欣网互联网络科技 中关村互联网科技集团 互联网科技官网 A股互联网金融科技公司 腾讯阿里互联网科技 互联网科技论坛 深圳艾佳互联网科技 中国科技互联网公司收入 互联网金融中的现代科技 崇明区互联网教育科技诚信经营 语蝶互联网科技有限公司 健康食品互联网创新科技园项目 浙南科技城互联网大厦建设工程 广州新华互联网科技学校电竞方面 广州燕处互联网科技有限公司 广州梦谷互联网科技有限公司领导 互联网领先科技活动 颐高云石互联网科技 广州为想互联网科技有限公司 上海致骋互联网科技 撒么互联网科技公司 中国最先进互联网科技公司 互联网科技产业特征 健康食品互联网创新科技园项目 广州梦谷互联网科技有限公司领导 互联网科技平台产品运营 盐城市攀科互联网科技有限公司 东风日产互联网科技公司叫什么
0