最近公司发现代码效率运行很低, 而且经常锁住数据库,意外发现了 druid 这个东西,说实话第一次碰到竟然是为 他的SQLutils,今天再开才发现他正式我想要的数据库sql执行监控工具, 废话不多说了,开始配置,为了能看到效果直接在我现在的项目上改,
druid 提供的文档真好,正式我们能看懂的中文文档:
https://github.com/alibaba/druid/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98
源码: https://github.com/alibaba/druid
在文档中, 说的非常详细, 我按照文档 文档基本半个小时就配置号;
以下是我的配置步骤:
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>${druid-version}</version>
</dependency>
现在最新版是 1.0.9
https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_StatFilter
druid 是控制sql 所以在数据源这里做了配置, 他们修改了spring的dbcp连接, 可能实在自己的数据源链接中添加了一些监控sql 的脚本
我是通过 bean 的方式配置的 其他配置方式见原网页
<bean id="stat-filter" class="com.alibaba.druid.filter.stat.StatFilter">
<property name="slowSqlMillis" value="10000" />
<property name="logSlowSql" value="true" />
<property name="mergeSql" value="true" />
</bean>
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
init-method="init" destroy-method="close">
... ...
<property name="filters" value="log4j" />
<property name="proxyFilters">
<list>
<ref bean="stat-filter" />
</list>
</property>
</bean>
<servlet-name>DruidStatView</servlet-name>
<servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DruidStatView</servlet-name>
<url-pattern>/druid/*</url-pattern>
</servlet-mapping>
<bean id="druid-stat-interceptor"
class="com.alibaba.druid.support.spring.stat.DruidStatInterceptor">
</bean>
<bean id="druid-stat-pointcut" class="org.springframework.aop.support.JdkRegexpMethodPointcut"
scope="prototype">
<property name="patterns">
<list>
<value>com.mycompany.service.*</value>
<value>com.mycompany.dao.*</value>
</list>
</property>
</bean>
<aop:config>
<aop:advisor advice-ref="druid-stat-interceptor"
pointcut-ref="druid-stat-pointcut" />
</aop:config>
我们启动我们服务, 我启动过程还是比较顺利的,如果原服务正常启动, 添加了druid出错了, 那就是配置错误了, 按照错误提示一步一步找应该能找到问题所在
看下我启动的效果吧:
输入你的用户名在 地址栏输入:应用地址:端口/web服务/druid
看到效果了, 哈哈, 看下数据源连接吧展示一下部分信息:
我本地只做了一次简单操作,所以数据比较少, 如果放在生产我们就可以看到了, 不会天天被被运维说我的数据链接有问题了
看一下我们最关心的sql吧:
噢 终于出来, 竟然和我 在 执行的是一致的O(∩_∩)O哈哈~ 配置正确,我们看到这里有方法执行时间, 和事物, 我这个方式是一个sevice , 所有的方法竟然都在事物中, 实际上只需要个在事物中即可, 费这么大劲,终于抓到元凶了, 没事干 弄那么多select 放事物做什么,还有就是有一个sql执行时间太长了,我么来分析一下:
如果方法执行太慢这个 sql 绝对是元凶! 要优化就从他入手吧!
相关推荐
《Druid连接池详解及其1.2.8版本特性》 Druid,全名Dynamic Routing Data Source,是由阿里巴巴开源的一款高效、强大的...持续的更新和维护,使得Druid始终保持着与时俱进的步伐,为开发者提供更好的数据库管理工具。
Druid是阿里巴巴开源的一个高效、强大的Java数据库连接池组件,它在淘宝等大型互联网公司得到了广泛的应用。Druid连接池的设计目标不仅仅是提供一个数据库连接管理工具,而是成为一个数据库访问的优化框架,它集成了...
api_mall: 商城模块,整合淘宝、拼多多、唯品会、蘑菇街平台的SDK,抹除各个平台间的差异,提供了统一的API api_user:用户模块,包含的具体内容如下: 订单查询:包含自购订单、分享订单的查询。 账单查询:包含...
PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是...
2. **Druid**:Druid是一个高效的JDBC连接池,同时也提供数据库监控、密码加密和SQL执行日志等功能,帮助企业提升数据库访问性能并确保安全。 3. **Fastjson**:Fastjson是Java语言的高性能JSON处理器,支持各种...
14. **Macaroon**:Macaroon是一个高效的反向代理测试工具,使用Python2.7开发,适用于跨平台测试,方便构建和测试复杂场景。 15. **Uploader**:Uploader是一个全面的文件上传组件,支持多种上传方式,兼容各种...
PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是...
PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是...
PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是...
PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是...
PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是...
PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是...
PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是...
PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是...
PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是...
PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是...
PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是...
PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是...
Druid 数据库连接池 【前端技术】Vue 互联网最火的前端框架Vue Router 路由框架Vuex 全局状态管理框架Axios 前端 HTTP 框架Element UI 前端 UI 框架Ant Design Pro Vue 前端模板Antv 蚂蚁金服可视化技术,阿里巴巴...
Spring Security5 认证和授权框架MyBatisPlus3.3.1 基于 MyBatis 框架的快速研发框架MyBatisCode工具 生成 MyBatis 相关代码Jackson 提供了处理 JSON 数据的工具Lombok 简化对象封装工具 Druid 数据库...