本文将详细介绍MongoDB数据库索引构建情况分析
创建索引可以加快索引相关的查询,但是会增加磁盘空间的消耗,降低写入性能。这时,就需要评判当前索引的构建情况是否合理,有4种方法可以使用
<强> 1,mongostat工具强>
<强> 2,概要集合介绍强>
<强> 3日志强>
<强> 4,解释分析强>
mongostat是mongodb自带的状态检测工具,在命令行下使用。它会间隔固定时间获取mongodb的当前运行状态,并输出。如果发现数据库突然变慢或者有其他问题的话,首先就要考虑采用mongostat来查看蒙戈的状态
mongostat是查看mongodb运行状态的程序,使用方式如下
mongostat - h ip:端口
<强>【字段说明】强>
插入/s:每秒插入数据库的对象数量,如果是奴隶,则数值前有*,则表示复制集操作 查询/s:每秒的查询操作次数 更新/s:每秒的更新操作次数 删除/s:每秒的删除操作次数 getmore/s:每秒查询光标(游标)时的getmore操作数 命令:每秒执行的命令数,在主从系统中会显示两个值(例如3 | 0),分别代表本地|复制命令 脏:脏数据字节的缓存百分比 使用:正在使用中的缓存百分比 冲:检查点的触发次数在一个轮询间隔期间,一般都是0,间断性会是1,通过计算两个1之间的间隔时间,可以大致了解多长时间冲洗一次.flush开销是很大的,如果频繁的冲洗,可能就要找找原因了 vsize:虚拟内存使用量,单位MB res:物理内存使用量,单位MB. res会慢慢的上升,如果res经常突然下降,要查看下是否有别的程序狂吃内存 qr:客户端等待从MongoDB实例读数据的队列长度 qw:客户端等待从MongoDB实例写入数据的队列长度 基于“增大化现实”技术:执行读操作的活跃客户端数量 亚历山大-伍尔兹:执行写操作的活客户端数量。如果ar或aw数值很大,那么就是DB被堵住了,DB的处理速度不及请求速度。查看是否有开销很大的慢查询。如果查询一切正常,确实是负载很大,就需要加机器了 netIn: MongoDB实例的网络进流量 netOut: MongoDB实例的网络出流量 康涅狄格州:打开连接的总数,是qr, qw, ar, addison - wesley的总和 时间:当前时间
<强>【实例】强>
插入100000条数据,并打开mongostat查询mongodb运行状态
基于MongoDB数据库索引构建情况全面分析