性能优化之druid连接池监控

正在被云化干的一头雾水的时候,测试小哥说:“63环境有个任务出问题了,处理一下”。

咱是出了名的老好人,来吧,看是啥问题!

后台日志显示连接池不够用了,无非两种情况:

1.数据库操作多

2.单次数据库操作时间长

对于第一种情况,咱们只能增加最大连接数,或者做批量操作,例如:循环插入改为批量插入,一般有经验的开发选手都不会循环插入。

咱们着重看第二种情况:单次数据库操作时间长

怎么确定是哪个数据库操作时间长呢?怎么定位?我给老铁们两个方案,一种是mysql的慢sql日志,这是我们通常用的方法。 第二种是Druid监控,(我是阿里中间件的粉丝),今天就着重来说一下什么是Druid监控,直接上代码!!!

//在druid连接池配置处开启慢sql监控
druidDataSource.setFilters("stat,wall,log4j");
//添加druid过滤器Bean
@Bean
public FilterRegistrationBean statFilter(){
    FilterRegistrationBean reg = new FilterRegistrationBean();
    reg.addUrlPatterns("/*");
    reg.addInitParameter("exclusions","*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");
}

应用启动脚本里配置jmx,不知道jmx的老铁自行百度,学一下,好多java自带工具都能用到。

我们需要用到tomcat,打开webapps\ROOT\WEB-INF\web.xml,添加jmx配置

然后双击tomcat的bin/startup.bat启动。

打开浏览器,访问127.0.0.1:8080/druid,账号密码,我配置的admin,admin

关于页面上的信息,我直接说sql监控,其他地方还请老铁们自行学习

 

看见这张图的时候,我是懵逼的,尤其是序号18,19,20,21,22,23,使用量那么大,还那么慢,所以,标红的sql一个一个优化吧,优化示例:

update table set is_delete=1 where task_id = 80067 这个sql不看执行计划都知道,task_id字段上没有添加索引,去数据库看了一下,果然没加索引。

用Druid监控来查询慢sql的步骤就这些啦!

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值