Mybatis-plus性能分析插件—PerformanceInterceptor

本文介绍了Mybatis-plus的性能分析插件PerformanceInterceptor,它能够展示每条SQL语句及其执行时间。文章详细讲解了如何使用该插件,并提及3.2.0及以上版本的更新,建议使用第三方扩展进行SQL执行分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#性能分析插件
性能分析拦截器,用于显示每条 SQL 语句及其执行时间

使用如下:

<plugins>
 ....
<!-- SQL 执行性能分析,开发环境使用。-->
<plugin interceptor="com.baomidou.mybatisplus.extension.plugins.PerformanceInterceptor">
    <!-- maxTime 指的是 sql 最大执行时长 -->
    <property name="maxTime" value="100" />
    <!--SQL是否格式化 默认false-->
    <property name="format" value="true" />
</plugin>
<plugins>

@SpringBootApplication
@MapperScan("com.aiyi.springbootplus.dao")
public class SpringbootPlusApplication {
  /**
 * SQL执行效率插件
 */
@Bean
public PerformanceInterceptor performanceInterceptor() {
    PerformanceInterceptor performanceInterceptor = new PerformanceInterceptor();
    return new PerformanceInterceptor();
}
}

如果该性能分析插件是3.2.0 以上版本移除推荐使用第三方扩展 执行 SQL 分析打印 功能

使用如下:

<think>嗯,用户想了解如何配置MyBatisPlus插件来打印SQL执行日志。我需要先回忆一下MyBatisPlus的相关配置方法。根据之前看到的引用内容,用户提供的引用里提到了几种方法,比如通过配置文件设置log-impl,使用logging.level调整日志级别,或者使用P6Spy插件。 首先,方法一是修改application.yml文件,配置mybatis-plus的log-impl为StdOutImpl。这样可以直接在控制台输出SQL日志。这个方法是比较直接的,引用[1]和引用[2]都提到了这种配置方式,应该可靠。 方法二是通过设置日志级别,将mapper接口所在的包的日志级别设为debug。引用[2]中的第二种方法就是这样的,配置logging.level.com.app.mapper为debug。不过用户需要替换成自己的mapper包路径,比如com.example.mapper。这可能依赖于项目使用的日志框架,比如Logback或Log4j2,但通常Spring Boot的配置是统一的。 第三种方法是使用P6Spy插件,引用[3]和引用[4]详细说明了如何配置spy.properties文件。需要添加依赖,然后创建配置文件,并指定相关参数,比如driverlist和logMessageFormat。这种方法可以输出更详细的日志,包括SQL执行时间,适合性能分析。但步骤稍微复杂,需要添加额外的依赖和配置文件。 另外,引用[5]提到了性能分析插件PerformanceInterceptor,不过这个插件在较新版本的MyBatisPlus中可能已经被标记为过时,或者被其他方法替代。所以可能不建议用户使用,但可以作为备选方案提及,同时提醒版本兼容性问题。 用户的问题是关于配置插件来打印SQL日志,所以需要分点列出不同的方法,每种方法的步骤和注意事项。比如方法一和方法二比较简单,适合快速启用;方法三适合需要详细日志的情况。同时,要提到依赖的添加,比如P6Spy需要引入对应的starter。 可能用户对这些配置的具体细节不太清楚,比如如何修改yml文件,或者如何添加依赖。需要给出具体的配置示例,比如代码块中的内容,让用户可以直接复制粘贴。同时,注意提示可能的坑,比如P6Spy配置中的driverlist必须指定真实的JDBC驱动,否则无法正常工作。 最后,生成相关问题,可能涉及这些方法的优缺点,如何选择,或者日志分析、性能优化等。确保问题覆盖用户可能感兴趣的后续步骤。</think>### MyBatis-Plus配置SQL执行日志打印方法 以下是三种常用方法实现SQL日志打印,根据项目需求选择合适方案: #### 方法1:通过YML配置直接输出SQL(推荐) 在`application.yml`中添加配置: ```yaml mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl ``` *特点*:无需额外依赖,控制台直接输出完整SQL及参数,但缺少执行时间统计[^1][^2]。 #### 方法2:通过日志级别控制 在`application.yml`中配置mapper包路径日志级别: ```yaml logging: level: com.yourpackage.mapper: debug ``` *特点*:结合SLF4J日志框架使用,需确保已配置日志实现(如Logback),输出格式依赖日志框架配置[^2]。 #### 方法3:使用P6Spy性能分析插件(生产环境慎用) 1. 添加依赖: ```xml <dependency> <groupId>p6spy</groupId> <artifactId>p6spy</artifactId> <version>3.9.1</version> </dependency> ``` 2. 创建`spy.properties`文件: ```properties modulelist=com.baomidou.mybatisplus.extension.p6spy.MybatisPlusLogFactory driverlist=com.mysql.cj.jdbc.Driver logMessageFormat=com.baomidou.mybatisplus.extension.p6spy.P6SpyLogger appender=com.baomidou.mybatisplus.extension.p6spy.StdoutLogger outagedetection=true outagedetectioninterval=2 ``` *特点*:可记录SQL执行时间、格式化输出语句,但会降低性能[^3][^4]。 #### 方法4(旧版):性能分析插件(已过时) ```java @Bean public PerformanceInterceptor performanceInterceptor() { return new PerformanceInterceptor(); } ``` *注意*:适用于MyBatis-Plus 3.4以下版本,新版建议使用P6Spy[^5]。 --- ### 配置建议对比表 | 方法 | 性能影响 | 输出信息 | 版本兼容性 | |------|----------|----------|------------| | YML配置 | 低 | 基础SQL | 全版本 | | 日志级别 | 低 | 基础SQL | 全版本 | | P6Spy | 较高 | 带耗时统计 | MP 3.3+ | | 性能插件 | 中 | 执行时间 | MP 3.4前 | ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值