Mongodb 添加索引 优化记录

每晚12点20分定时任务做数据统计,mongodb 50万条数据开始,每天晚上CPU报警:CPU>=95,并耗时3分钟以上.

bash 复制代码
2023-12-08 00:20:00.023 [Thread-95] INFO  c.q.i.q.jobhandler.dataMongoDBXxlJob - ==========定时生成记录开始=========
............
............
............
2023-12-08 00:20:24.719 [pool-49-thread-1] INFO............
2023-12-08 00:20:24.719 [pool-49-thread-3] INFO............
2023-12-08 00:20:24.719 [pool-49-thread-4] INFO............
2023-12-08 00:20:24.719 [pool-49-thread-5] INFO............
............
............
............
2023-12-08 00:23:11.362 [Thread-95] INFO  c.q.i.q.jobhandler.dataMongoDBXxlJob - ==========定时生成记录结束=========

分析原因:

集合是按月进行生成,集合名称"data-2023-12",新集合未自动添加相关索引

慢查询

增加索引

db.getCollection("data-2023-12").createIndex({

dataId: NumberInt("1"),

dateTime: NumberInt("1"),

pos: NumberInt("1")

}, {

name: "index_dataId_pos"

});

添加索引后定时任务执行时间,并且未触发cpu报警,耗时3秒左右

bash 复制代码
2023-12-08 15:51:41.584 [Thread-97] INFO  c.q.i.q.jobhandler.dataMongoDBXxlJob - ==========定时生成记录开始=========

..................

2023-12-08 15:51:41.810 [pool-51-thread-6] INFO  c.q.i.query.service.ChargingStatisticsInfoService -
2023-12-08 15:51:41.810 [pool-51-thread-6] INFO  c.q.i.query.service.ChargingStatisticsInfoService - 
2023-12-08 15:51:41.858 [pool-51-thread-2] INFO  c.q.i.query.service.ChargingStatisticsInfoService - 

..................

2023-12-08 15:51:44.161 [Thread-97] INFO  c.q.i.q.jobhandler.dataMongoDBXxlJob - ==========定时生成记录结束=========
相关推荐
张人玉5 分钟前
c# Data相关类
数据库·oracle
云和数据.ChenGuang6 分钟前
OpenEuler 系统中安装 MySQL
运维·数据库·mysql·adb·运维工程师·运维技术
wniuniu_7 分钟前
ceph中的rbd的稀疏写入
java·服务器·数据库
科技块儿12 分钟前
如何使用IP数据云数据库接入流量监控?
数据库·网络协议·tcp/ip
叮咚侠23 分钟前
Ubuntu 24.04.3 LTS如何扩容逻辑卷
linux·数据库·ubuntu
张人玉30 分钟前
c#DataTable类
数据库·c#
风月歌31 分钟前
基于微信小程序的学习资料销售平台源代码(源码+文档+数据库)
java·数据库·mysql·微信小程序·小程序·毕业设计·源码
gjc59231 分钟前
【一次线上 MySQL 死锁问题的完整复盘与解析】
数据库·mysql·死锁
qq24392016132 分钟前
mysql导致的内存泄漏Abandoned connection cleanup thread
数据库·mysql
·云扬·34 分钟前
深入理解MySQL InnoDB MVCC:原理、实验与实践
数据库·mysql