最近mysql同步到mongodb很慢,开始排查问题。
首先想到的是mongodb的问题,那么就要找出它的慢查询日志,证明是mongodb的问题
一、
用那个绿色的工具,robomongo打开,对着某个需要的数据库打开shell(右键open shell),(一定要这样,否者会查到或者设置到别的数据库,导致一直没看到数据)
二、
mongodb有profiling三个级别:
0:关闭,不收集任何数据。
1:收集慢查询数据,默认是100毫秒。
2:收集所有数据
首先查看级别
db.getProfilingLevel():
可以看到默认是0
然后查看状态:
db.getProfilingStatus(),这里会有级别和慢查询记录的毫秒数,默认100毫秒
三、
设置级别为1
db.setProfilingLevel(1),再用db.getProfilingStatus()这个查看,已经是1了
四、查询
返回大于5毫秒慢的操作:
db.system.profile.
find
({ millis : { $gt : 5 } } ).pretty()
把5变成1000,居然有这么多记录,难怪会这么慢了。。。
接下去就是mongdb建索引去优化了