最近公司发现代码效率运行很低, 而且经常锁住数据库,意外发现了 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 蚂蚁金服可视化技术,阿里巴巴...
EJB中JNDI的使用源码例子 1个目标文件,JNDI的使用例子,有源代码,可以下载参考,JNDI的使用,初始化Context,它是连接JNDI树的起始点,查找你要的对象,打印找到的对象,关闭Context…… ftp文件传输 2个目标文件...