Druid慢SQL统计需启用StatFilter并设阈值,纯应用层实现:配置filters=stat、log-slow-sql=true和slow-sql-millis(如100ms),再注册StatViewServlet并设置登录信息,即可在/druid/页面查看慢SQL。

Druid 连接池配置慢 SQL 统计,核心是启用 StatFilter 并设置阈值,不需要数据库端配合,纯应用层拦截和统计。
启用 StatFilter 监控过滤器
必须显式开启 stat 过滤器,否则后续慢 SQL 配置不生效:
- Properties 方式:
spring.datasource.druid.filters=stat - YAML 方式:
spring: datasource: druid: filters: stat
设置慢 SQL 判定阈值
单位为毫秒,按需调整(生产环境建议设为 100–500ms,开发调试可设为 1ms):
分析 Java Spring Boot 后端 Controller 代码,自动生成 Markdown 格式的接口文档。当用户说“生成 Java 接口文档”、“生成 API 文档”、“从 Spring 代码生成文档”时触发。
-
spring.datasource.druid.filter.stat.log-slow-sql=true(开启日志记录) -
spring.datasource.druid.filter.stat.slow-sql-millis=100(执行超 100ms 即标记为慢 SQL)
确保监控界面可访问
慢 SQL 会汇总到 Druid 的 Web 控制台,需配置后台 Servlet:
- 注册
StatViewServlet,路径如/druid/* - 设置登录账号密码:
loginUsername和loginPassword - 访问
http://localhost:8080/druid→ “SQL 监控”页查看实时统计与慢 SQL 列表
注意几个关键点
避免常见配置失效问题:
- 仅配置
slow-sql-millis但没开filters=stat→ 慢 SQL 不会被捕获 - 未配置
log-slow-sql=true→ 控制台中仍显示所有 SQL,但不会高亮/归类慢 SQL - 重启应用后监控数据清空,属正常行为(内存级统计,非持久化)
- 该功能与 MySQL 的
slow_query_log无关,两者独立运行
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










