更新超時十之八九是事務太大
1.要精簡代碼,讓事務變小
2.加查詢條件索引,縮短更新時where條件的查詢時間
3.如果有查詢,如果可以的話從事務裏分離,在事務外面先算好,再開事務只處理更新(避免大數據量的情況下事務既有讀又有寫的情況)
事務:大事務拆分小事務,事務裏面儘量避免查詢的發生。
4.幾百萬幾千萬的數據可以分批處理,比如一萬筆一次更新,這樣事務也小點,執行速度也會快點
5.如果某個更新是非關鍵更新,比如更新個冗餘字段比如點擊數之類的,可以異步去處理
先得確定超時原因,
1.是更新數據太多? 2.還是其他業務更新導致的死鎖,
不同問題不同的應對方案。
如果是數據太多,是否需要分批更新,是否可以先查詢然後根據id去批量跟新,是否需要增加索引等
如果是死鎖,需要查看監控信息,看看是哪類業務導致死鎖,一次更新數據太多,如果dml併發高的很容易引起死鎖。