变更日期: 2025-08-04 18:30:00
变更人员: Cursor AI
变更类型: 性能优化
影响范围: 后端服务启动日志
启动日志中持续打印 SELECT 1 查询,每10秒左右出现一次,消耗时间约19-22ms,影响日志可读性和系统性能。
SELECT 1 是数据库连接池的心跳检测查询keepaliveTime: 30000 (30秒) 检测间隔过短minIdle: 15 保持15个空闲连接文件: backend/ruoyi-admin/src/main/resources/application-dev.yml
hikari:
# 最大连接池数量(从30减少到20)
maxPoolSize: 20
# 最小空闲线程数量(从15减少到5)
minIdle: 5
# 空闲连接存活最大时间(从3分钟增加到5分钟)
idleTimeout: 300000
# 连接最长生命周期(从10分钟增加到15分钟)
maxLifetime: 900000
# 心跳检测间隔(从30秒增加到60秒)
keepaliveTime: 60000
# 连接测试查询(保持不变)
connectionTestQuery: SELECT 1
文件: backend/ruoyi-admin/src/main/resources/application.yml
logging:
level:
# 关闭SQL日志调试,减少SELECT 1心跳检测日志
org.dromara.cw.mapper.CwApprovalRecordMapper: info
org.dromara.cw.service.impl.CwApprovalRecordServiceImpl: info
org.dromara.cw.listener.ApprovalProcessEventListener: info
文件: backend/ruoyi-admin/src/main/resources/logback-plus.xml
<!-- 设置MyBatis的日志级别为INFO,减少SELECT 1心跳检测日志 -->
<logger name="org.dromara.xg.mapper" level="INFO">
<logger name="org.dromara.xg.mapper.XgSysUserMapper" level="INFO">
<logger name="org.apache.ibatis" level="INFO">
<logger name="java.sql" level="INFO">
<logger name="java.sql.Connection" level="INFO">
<logger name="java.sql.Statement" level="INFO">
<logger name="java.sql.PreparedStatement" level="INFO">
| 配置项 | 优化前 | 优化后 | 改善效果 |
|---|---|---|---|
| maxPoolSize | 30 | 20 | 减少33%连接数 |
| minIdle | 15 | 5 | 减少67%空闲连接 |
| keepaliveTime | 30秒 | 60秒 | 减少50%检测频率 |
| idleTimeout | 3分钟 | 5分钟 | 延长连接生命周期 |
| maxLifetime | 10分钟 | 15分钟 | 延长连接生命周期 |
| SQL日志级别 | DEBUG | INFO | 减少详细日志输出 |
需要重启服务: ✅ 是
重启命令:
# 停止当前服务
# 重新启动后端服务
cd backend
./start-all.sh
SELECT 1 出现频率应明显降低maxPoolSize变更状态: ✅ 已完成
测试状态: ⏳ 待验证
文档状态: ✅ 已更新