最近嘗試使用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等速度緩慢
