mongodb之进阶
Posted zlixing
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mongodb之进阶相关的知识,希望对你有一定的参考价值。
常用命令:
1.查看数据库空间大小
db.stats(); 默认是bytes单位
"db" : "xxx", //当前数据库
"collections" : 27, //当前数据库多少表
"objects" : 18738550, //当前数据库所有表多少条数据
"avgObjSize" : 1153.54876188392, //每条数据的平均大小
"dataSize" : 21615831152.0, //所有数据的总大小
"storageSize" : 23223312272.0, //所有数据占的磁盘大小
"numExtents" : 121,
"indexes" : 26, //索引数
"indexSize" : 821082976, //索引大小
"fileSize" : 25691160576.0, //预分配给数据库的文件大小
"nsSizeMB" : 16,
"dataFileVersion" :
"major" : 4,
"minor" : 5
,
"extentFreeList" :
"num" : 1,
"totalSize" : 65536
,
"ok" : 1.0
可以传递参数:
db.stats(1024) 得到的是kb单位
db.stats(1073741824); 得到的是G单位
1.profile
在使用mongo的时候, 会发现查询较为缓慢, 这个时候可以profile来监控数据并进行优化
查看是否开启profile功能
db.getProfilingLevel()
返回level等级, 0-关闭 1-记录慢命令 2-全部
开启profile:
db.setProfilingLevel(1|2|0);
设置level等于1的shihou,慢命令默认是100ms
可以进行更改:
db.setProfilingLevel(1, 50); 改为50毫秒
查看日志:
db.system.profile.find();
/* 1 */
"op" : "query",
"ns" : "config.system.profile",
"command" :
"find" : "system.profile",
"filter" : ,
"$readPreference" :
"mode" : "secondaryPreferred"
,
"$db" : "config"
,
"keysExamined" : 0,
"docsExamined" : 0,
"cursorExhausted" : true,
"numYield" : 0,
"locks" :
"Global" :
"acquireCount" :
"r" : NumberLong(2)
,
"Database" :
"acquireCount" :
"r" : NumberLong(1)
,
"Collection" :
"acquireCount" :
"r" : NumberLong(1)
,
"nreturned" : 0,
"responseLength" : 94,
"protocol" : "op_command",
"millis" : 32,
"planSummary" : "COLLSCAN",
"execStats" :
"stage" : "COLLSCAN",
"nReturned" : 0,
"executionTimeMillisEstimate" : 0,
"works" : 2,
"advanced" : 0,
"needTime" : 1,
"needYield" : 0,
"saveState" : 0,
"restoreState" : 0,
"isEOF" : 1,
"invalidates" : 0,
"direction" : "forward",
"docsExamined" : 0
,
"ts" : ISODate("2019-01-18T03:10:06.731Z"),
"client" : "192.168.0.72",
"appName" : "MongoDB Shell",
"allUsers" : [
"user" : "root",
"db" : "admin"
],
"user" : "root@admin"
以上是关于mongodb之进阶的主要内容,如果未能解决你的问题,请参考以下文章