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。

建議開發環境使用,生產環境不要使用,還是那句話,生產環境加上這個會消耗一定的性能。所以一般開發環境開啟,生產環境禁用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM