最近在做項目優化,代碼優化之后,測試接口,好家伙。一個定時任務接口執行要10秒左右。
一點點追蹤,給每個方法打上執行時間,一點點縮小范圍。好家伙,終於讓我鎖定了目標。
這是mybatis-plus的批量插入,由於調用的是第三方接口,他們有多少數據,我們就更新多少數據進數據表里面。初步一看,最多的那張表1000條數據左右,平均每個表300多條
最多那張表,進行數據更新,整整需要消耗2秒多
這哪里能忍,一條sql差不多3秒,數據還只是1000條,要是達到數以萬計,那不得崩掉。
趕緊找一波解決方法。最后鎖定一個數據庫連接的屬性rewriteBatchedStatements
加上這個屬性,性能直接起飛,看效果
結果1000條數據的插入,不到兩毫秒。這速度,我都驚了。具體原理就不一一展開來講了。下班要緊。
經過今天這一折騰,看來數據庫這塊,還是有必要深入學習的。