MP实战系列(十六)之性能分析插件

性能分析拦截器,用于输出每条 SQL 语句及其执行时间。

虽然使用阿里的Druid连接池可以完成这个目的,但是,我们一般认为,目前的组件能够达到这个目的,尽量使用目前的组件,因为修改配置和引入第三方库是需要消耗性能的。

很久使用我们没有这种便利的开发工具来测试性能, 比如以MySQL为例,我们就使用explain命令来测试性能。

输出每条SQL语句和执行时间的目的,在于,直观看到那些是需要优化的,例如SQL优化,通常除去查询大量数据加索引的情况,一般都是去除不需要获取的字段来达到sql优化的目的。

Spring+SpringMVC+MyBatis-Plus(SSM框架)

只需在mybatis-config.xml配置如下内容即可(这里有效的测试,目前针对于2.0以上和3.0以下,3.0以上没测试过,暂不考虑,我想3.0应该也没问题):

<plugins>

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

 

如果是SpringBoot的话,增加如下内容即可:

@EnableTransactionManagement
@Configuration
@MapperScan("com.blog.service.*.mapper*")
public class MybatisPlusConfig {

    /**
     * SQL执行效率插件
     */
    @Bean
    @Profile({"dev","test"})// 设置 dev test 环境开启
    public PerformanceInterceptor performanceInterceptor() {
        return new PerformanceInterceptor();
    }
}

 

注意事项:

  • 参数:maxTime SQL 执行最大时长,超过自动停止运行,有助于发现问题。
  • 参数:format SQL SQL是否格式化,默认false。

建议开发环境使用,生产环境不要使用,还是那句话,生产环境加上这个会消耗一定的性能。所以一般开发环境开启,生产环境禁用。

转载于:https://www.cnblogs.com/youcong/p/9794416.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值