系列文章目录
MongoDB概念基础学习记录——<一>
MongoDB安装配置连接学习记录——<二>
一、mongostat状态检测
命令
mongostat --host 127.0.0.1:27017 -uadmin -p123456 --authenticationDatabase admin
insert # 每秒插入次数
query # 每秒查询次数
update # 每秒更新次数
delete # 每秒删除次数
getmore # 每秒执行getmore次数
command # 每秒的命令数,比以上插入、查找、更新、删除的综合还多,还统计了别的命令
`注: 一秒内执行的命令数比如批量插入,只认为是一条命令(所以意义应该不大)`
dirty # 仅仅针对WiredTiger引擎,官网解释是脏数据字节的缓存百分比
used # 仅仅针对WiredTiger引擎,官网解释是正在使用中的缓存百分比
flushes # For WiredTiger引擎 指checkpoint的触发次数在一个轮询间隔期间
# For MMAPv1 引擎:每秒执行fsync将数据写入硬盘的次数
`注:一般都是0,间断性会是1, 通过计算两个1之间的间隔时间,可以大致了解多长时间flush一次。`
`flush开销是很大的,如果频繁的flush,可能就要找找原因了`
vsize # 虚拟内存使用量,单位MB
#(这是 在mongostat 最后一次调用的总数据)
res # 物理内存使用量,单位MB
#(这是 在mongostat 最后一次调用的总数据)
`注:vsize一般不会有大的变动, res会慢慢的上升,如果res经常突然下降,去查查是否有别的程序狂吃内存`
qr|qw # qr:客户端等待从MongoDB实例读数据的队列长度
# qw:客户端等待从MongoDB实例写入数据的队列长度
ar|aw # ar:执行读操作的活跃客户端数量
# aw:执行写操作的活客户端数量
netIn # 网络带宽压力,MongoDB实例的网络进流量
netOut # 网络带宽压力,MongoDB实例的网络出流量
conn # 打开连接的总数,是qr,qw,ar,aw的总和
`注:MongoDB为每一个连接创建一个线程,线程的创建与释放也会有开销,所以尽量要适当配置连接数的启动参数,
maxIncomingConnections,阿里工程师建议在5000以下,基本满足多数场景`
time #时间戳
二、mongotop状态检测
mongotop --host 127.0.0.1:27017 -uadmin -p123456 --authenticationDatabase admin
ns # 表示namespace,由库名和集合名称构成
db # 库名,使用–locks显示
total # 读操作和写操作总计耗时,以ms表示
read # 读操作耗时
write # 写操作耗时
三、常用命令操作
3.1 基本操作
db.version() # 查看数据库版本
db.status() # 查看数据库状态
show dbs # 查看所有数据库
db.getName() # 查看当前数据库
show collections# 查看当前数据库的所有集合
use rec # 切换数据库
3.2 集合操作
db.test.find({id:10}) # 返回test数据集ID=10的数据集
db.test.find({id:10}).count() # 返回test数据集ID=10的数据总数
db.test.find({id:10}).limit(2) # 返回test数据集ID=10的数据集从第二条开始的数据集
db.test.find({id:10}).skip(8) # 返回test数据集ID=10的数据集从0到第八条的数据集
db.test.find({id:10}).limit(2).skip(8) # 返回test数据集ID=1=的数据集从第二条到第八条的数据
db.test.find({id:10}).sort() # 返回test数据集ID=10的排序数据集
db.test.findOne([query]) # 返回符合条件的一条数据
db.test.getDB() # 返回此数据集所属的数据库名称
db.test.getIndexes() # 返回些数据集的索引信息
db.test.group({key:...,initial:...,reduce:...[,cond:...]}) # 返回分组信息
db.test.mapReduce(mayFunction,reduceFunction,<optional params>) # 这个有点像存储过程
db.test.remove(query) # 在数据集中删除一条数据
db.test.renameCollection(newName) # 重命名些数据集名称
db.test.save(obj) # 往数据集中插入一条数据
db.test.stats() # 返回此数据集的状态
db.test.storageSize() # 返回此数据集的存储大小
db.test.totalIndexSize() # 返回此数据集的索引文件大小
db.test.totalSize() # 返回些数据集的总大小
db.test.update(query,object[,upsert_bool]) # 在此数据集中更新一条数据
db.test.validate() # 验证此数据集
db.test.getShardVersion() # 返回数据集共享版本号
参考文章:https://blog.csdn.net/weixin_43453386/article/details/83347385