扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
解决MongoDb CPU利用率过高问题的方法?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
为宁明等地区用户提供了全套网页设计制作服务,及宁明网站建设行业解决方案。主营业务为成都网站设计、网站制作、宁明网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!1.根据代码,定位到了是Mongodb的报错。
2.进入Mongodb 服务器的监控后台,这里是在阿里云购买的云缓存。
3.知道是Mongodb出问题,就好办了,阿里云里面有个索引推荐,很好用的,会给出查询时间,执行次数,和推荐策略
OK,这里准备工作就基本做完了。
解决策略:
1.根据这些给出的执行次数,和执行时间慢的,去看了下库。从设计上,有问题,一个库有900W的数据,然后集合逻辑看了下,这库只往里面存数据,从不清理
2.没有建立过索引,包括单一索引和连接索引,这也是会导致慢的一个原因。优化后是这样的,
db.getCollection('course_study_history').createIndex({'studentId':1,'contentStudyID':1,'courseWareID':1,'courseStudyId':1})
3.一个查询总数的方法有问题,下面是修改后的JAVA方法:
MongoCollectioncollection = database.getCollection(pushMessageCollection); long cNt = collection.count(Filters.and(Filters.eq("userId", userId), Filters.eq("sendType", sendType), Filters.eq("message_read", "0")));
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流