mybatis-plus批量插入saveBatch太慢?我願意稱rewriteBatchedStatements為神

天下沒有收費的bug發表於2021-05-25

最近在做專案優化,程式碼優化之後,測試介面,好傢伙。一個定時任務介面執行要10秒左右。

一點點追蹤,給每個方法打上執行時間,一點點縮小範圍。好傢伙,終於讓我鎖定了目標。

 

 

 

這是mybatis-plus的批量插入,由於呼叫的是第三方介面,他們有多少資料,我們就更新多少資料進資料表裡面。初步一看,最多的那張表1000條資料左右,平均每個表300多條

最多那張表,進行資料更新,整整需要消耗2秒多

 

 

 

這哪裡能忍,一條sql差不多3秒,資料還只是1000條,要是達到數以萬計,那不得崩掉。

趕緊找一波解決方法。最後鎖定一個資料庫連線的屬性rewriteBatchedStatements

 

 

 

加上這個屬性,效能直接起飛,看效果

 

 

 

結果1000條資料的插入,不到兩毫秒。這速度,我都驚了。具體原理就不一一展開來講了。下班要緊。

經過今天這一折騰,看來資料庫這塊,還是有必要深入學習的。

相關文章