如何在Mybatis-Plus中利用p6spy对SQL的性能进行监控

如何在Mybatis-Plus中利用p6spy对SQL的性能进行监控?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

第一步、引入maven依赖

<!-- p6spy sql性能分析工具-->
<dependency>
  <groupId>p6spy</groupId>
  <artifactId>p6spy</artifactId>
  <version>3.9.1</version>
</dependency>

第二步、修改yml配置

原先的urldriver-class-name修改成p6spy的驱动和url形式。
本质上p6spy相当于代理了jdbc操作

server:
 port: 8088
spring:
 datasource:
  driver-class-name: com.p6spy.engine.spy.P6SpyDriver
  url: jdbc:p6spy:mysql://localhost:3306/mp_high?useSSL=false&serverTimezone=GMT%2B8
#  driver-class-name: com.mysql.cj.jdbc.Driver
#  url: jdbc:mysql://localhost:3306/mp_high?useSSL=false&serverTimezone=GMT%2B8
  username: root
  password: 123456
mybatis-plus:
 configuration:
  map-underscore-to-camel-case: true # 开启驼峰命名

第三步、新建一个spy.properties文件

spy.properties

文件内容:填入jdbc连接的驱动,以及日志输出配置

driverlist=com.mysql.cj.jdbc.Driver

logMessageFormat=com.p6spy.engine.spy.appender.MultiLineFormat
#logMessageFormat=com.p6spy.engine.spy.appender.SingleLineFormat

databaseDialectDateFormat=yyyy-MM-dd HH:mm:ss

appender=com.p6spy.engine.spy.appender.StdoutLogger

完成!然后就可以在控制台中查看到执行sql返回数据消耗的时间例如:

@Autowired
UserMapper userMapper;

@Test
public void selectTest(){
  List<User> users = userMapper.selectList(null);
  System.out.println(users);
}

如何在Mybatis-Plus中利用p6spy对SQL的性能进行监控

然后就可以根据sql的执行效率分析sql对sql进行优化,当然建议并发执行取平均值作为参考数据

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注