性能:幾百萬上千萬數據的程序如何避免更新必定超時?

更新超時十之八九是事務太大

1.要精簡代碼,讓事務變小

2.加查詢條件索引,縮短更新時where條件的查詢時間

3.如果有查詢,如果可以的話從事務裏分離,在事務外面先算好,再開事務只處理更新(避免大數據量的情況下事務既有讀又有寫的情況)
   事務:大事務拆分小事務,事務裏面儘量避免查詢的發生。

4.幾百萬幾千萬的數據可以分批處理,比如一萬筆一次更新,這樣事務也小點,執行速度也會快點

5.如果某個更新是非關鍵更新,比如更新個冗餘字段比如點擊數之類的,可以異步去處理
先得確定超時原因,
1.是更新數據太多? 2.還是其他業務更新導致的死鎖,

不同問題不同的應對方案。

如果是數據太多,是否需要分批更新,是否可以先查詢然後根據id去批量跟新,是否需要增加索引等

如果是死鎖,需要查看監控信息,看看是哪類業務導致死鎖,一次更新數據太多,如果dml併發高的很容易引起死鎖。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章