前几篇文章我们介绍了Mybatis plus的插件用法,本来想着写一篇mybatis plus的性能分析插件的使用案例的,结果发现这个插件在3.2.0之后就被废弃了(原谅我很少使用这种插件,因为公司有成熟的sql性能分析平台),所以去官方查看的时候,看到官方推荐使用p6spy,所以这篇文章我们介绍下p6spy的使用。
一、springboot项目,添加如下依赖
<dependency> <groupId>com.github.klboke</groupId> <artifactId>p6spy-spring-boot-starter</artifactId> <version>1.0</version> </dependency>
二、修改application.yml或者application.properties文件
2.1、添加如下信息
p6spy.config.appender = com.p6spy.engine.spy.appender.Slf4JLogger p6spy.config.logMessageFormat = com.p6spy.engine.spy.appender.CustomLineFormat p6spy.config.customLogMessageFormat = executionTime:%(executionTime)| 执行sql:%(sqlSingleLine)
备注:
1、这里主要是配置p6spy的日志打印输出的部分,特别是第三个,这里我们可以自定义。
2.2、修改jdbc的配置
在这里修改jdbc的配置主要会涉及到修改两项,分别是url和driver,这里修改为p6spy的信息即可,例如:
spring.datasource.driver-class-name=com.p6spy.engine.spy.P6SpyDriver spring.datasource.url=jdbc:p6spy:mysql://192.168.31.30:3306/test2?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8
备注:
1、这里的url需要在里面添加上p6spy的部分。
2、这里的driver需要修改为p6spy的驱动。
以上我们就配置完了,剩余代码部分不需要做任何配置,此时我们把项目运行下看看
可以看到这里的执行的每一个sql语句都输出了对应的执行时间,同时这里每一个sql里面包含的参数也都打印出来了,非常的全面。在真实环境中,我们可以通过这个来筛选哪些sql执行较慢,这样子为sql优化做准备。
备注:
1、这个p6spy插件对代码无侵入性,只需要修改配置即可。
2、这里的p6spy会对执行的所有sql打印出来,并且执行的参数都会打印出来,生产环境会造成非常大的安全隐患,所以在生产环境慎用。
最后附上本案例的源码,登录后即可下载。
还没有评论,来说两句吧...