我在Mybatis-plus提升批量插入性能20倍


最近嘗試使用MySql,建了一個表40列,每次通過Entity List的方式寫入1000條數據。

saveBatch(list);
通過StopWatch一查看,區區1000行數據竟然用時10S,簡直不能忍。
開始以為是MybatisPlus的問題,查看了源碼,人家的確是批量寫入的,沒啥毛病。
一番搜索,網友給出了如下方案
數據庫連接參數配置了  rewriteBatchedStatements=true 最終得以解決!
master.jdbc.url=jdbc:mysql://xxx.xx.xxx.xx:3306/outreach_platform?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&rewriteBatchedStatements=true

經修改及測試,我的1000條數據寫入時間穩定在500ms,在不修改代碼,不調整數據庫的情況下性能提升高達20倍。

參考:

Mybatis-plus批量插入、批量修改數據saveBatch等速度緩慢

MySQL之rewriteBatchedStatements

批處理 rewriteBatchedStatements=true

介紹MySQL Jdbc驅動的rewriteBatchedStatements參數

MySQL之rewriteBatchedStatements


免責聲明!

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



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