Mongodb慢操作与处理
正式平台运营过程中一般都会碰到一些慢操作处理,比如在一个数据量超过千万级的表中,搜索一年内某个条件的数据时,查询会很慢,虽然可以通过添加索引解决,但有的时候索引还是不能完全覆盖所有情况,这时需要查看是什么查询导至的慢查询,需要将慢查询kill掉,避免影响整个数据的性能。
db.currentOP()
进到入到mongo shell控制台,执行命令,可以看到当前的所有慢操作,如以下图片内容:
执行完以后可以看到前有那些慢操作,如果想要停止某个慢操作,可以执行以下命。
db.killOp(<opid of the query to kill>)
例:db.killOp(346262195),执行当前可以将346262195任务kill掉,停止当前慢操作,缓解数据库的当前压力。
当前以上操作,只是在发现数据库CPU比较高时一个查询方法,发现问题后,还是需要根据当时情况分析,然后做到相应的处理办法,比如,添加相应的索引,减少这种慢查询。
更多Mongodb API,请参考官方文档 https://docs.mongodb.com/manual/reference/method/js-database/