• 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。

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

  • 相关阅读:
    利用matlab给图像加高斯噪声
    频谱分析代码片段2
    相关性分析代码片段2
    相关性分析代码片段
    频谱分析代码片段
    大脑提取每一个体素26领域的matlab代码
    当前所看论文记录
    论文阅读笔记
    余弦距离、欧氏距离和杰卡德相似性度量的对比分析 by ChaoSimple
    Container With Most Water
  • 原文地址:https://www.cnblogs.com/youcong/p/9794416.html
Copyright © 2020-2023  润新知