mongodb之进阶

炒沙作縻终不饱,缕冰文章费工巧。这篇文章主要讲述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之进阶】


    推荐阅读