导读
Hi,大家好,我是悟纤。过着爱谁谁的生活,活出不设限的人生。
在我们日常开发工作当中,避免不了查看当前程序所执行的SQL语句,以及了解它的执行时间,方便分析是否出现了慢SQL问题。
MyBatis-Plus提供了两种SQL分析打印的方式,用于输出每条SQL语句及其执行时间,针对执行较长时间的SQL可以停止运行,有助于发现问题。
这两种方式只适用于开发环境,因为这些工具都是有性能损耗的,所以不建议生产环境使用。
因为PerformanceInterceptor插件在MyBatis-Plus3.2.0以上版本移除了,所以这里我们只介绍MyBatis-Plus官网推荐的方式。
一、p6spy 组件的使用
p6spy是针对数据库访问操作的动态监测框架(开源项目)它使得数据库数据可无缝截取和操纵,而不必对现有应用程序的代码作任何修改。常见集成p6spy的方式是在资源目录下新增配置文件,然后通过驱动装载。
1.1 添加依赖p6spy
在文件中,添加依赖p6spy:
-
<dependency>
-
<groupId>p6spy</groupId>
-
<artifactId>p6spy</artifactId>
-
<version>3.9.1</version>
-
</dependency>
1.2 添加驱动配置
在配置文件进行数据库驱动的配置:
-
-class-name = 66SpyDriver
-
=jdbc:p6spy:mysql://localhost:3306/mybatis-plus-demo
配置文件中,要设置使用p6spy的驱动,并且url也要加上p6spy,其它的配置不用修改。
1.3 添加配置文件
再在resources文件夹下创建p6spy的配置文件:
-
#3.2.1以上使用
-
modulelist=6,66OutageFactory
-
#3.2.1以下使用或者不配置
-
#modulelist=66LogFactory,66OutageFactory
-
# 自定义日志打印
-
logMessageFormat=66SpyLogger
-
#日志输出到控制台
-
appender=6
-
# 使用日志系统记录 sql
-
#appender=64JLogger
-
# 设置 p6spy driver 代理
-
deregisterdrivers=true
-
# 取消JDBC URL前缀
-
useprefix=true
-
# 配置记录 Log 例外,可去掉的结果集有error,info,batch,debug,statement,commit,rollback,result,resultset.
-
excludecategories=info,debug,result,commit,resultset
-
# 日期格式
-
dateformat=yyyy-MM-dd HH:mm:ss
-
# 实际驱动可多个
-
#driverlist=2.Driver
-
# 是否开启慢SQL记录
-
outagedetection=true
-
# 慢SQL记录标准 2 秒
-
outagedetectioninterval=2
1.4 测试
测试执行SQL,然后查看控制台信息:
小结
本节介绍了MP的p6spy组件的使用,对于p6spy的主要步骤如下:
(1)在文件中添加p6spy的依赖。
(2)修改的数据源驱动配置。
(3)添加的配置文件。
注意点:该插件有性能损耗,不建议生产环境使用。