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 - ==========定时生成记录结束=========
相关推荐
倔强的石头1065 分钟前
让时序开发更可控:金仓时序 DB 的易用性实践与平台化路径
数据库·kingbase
数据知道14 分钟前
PostgreSQL实战:如何用 CTE(公用表表达式)解决复杂的查询逻辑
数据库·postgresql
1.14(java)20 分钟前
MySQL索引原理与B+树应用详解
数据库·b树·mysql
java干货22 分钟前
用 MySQL SELECT SLEEP() 优雅模拟网络超时与并发死锁
网络·数据库·mysql
哈哈不让取名字23 分钟前
使用Fabric自动化你的部署流程
jvm·数据库·python
洛_尘26 分钟前
MySQL 6:数据库约束
数据库·mysql
dawudayudaxue26 分钟前
sqlite在安卓下使用ndk的交叉编译
android·数据库·sqlite
YIN_尹27 分钟前
【MySQL】表的约束(下)
android·数据库·mysql
lkbhua莱克瓦2430 分钟前
Apache Maven全面解析
java·数据库·笔记·maven·apache
optimistic_chen30 分钟前
【Redis系列】哨兵模式
linux·数据库·redis·分布式·哨兵