效能優化實踐

2021-08-21 16:50:10 字數 753 閱讀 6074

由於系統表資料量達到百萬級別,所有就遇到了效能優化問題。總結解決問題思路如下:

1、從使用者角度來說,介面的資料載入緩慢,超過5秒就是存在效能問題了。解決問題思路,首先,先確定瓶頸點在**,確定是**的問題還是sql的問題,可以通過debug除錯或者日誌或者擷取堆疊資訊檢視耗時來確定。

2、如果是**層面的問題,考慮減少**複雜度或者優化相關演算法。比如for迴圈次數過多、if判斷過多、重複邏輯**過多等,可以直接獲取到返回結果的跳出方法;減少和資料庫的頻繁連線關閉,批量提交資料等。

解決方法:減少for迴圈次數、if判斷,針對可以確定結果的判斷直接跳出方法,重複邏輯刪除;資料在**層統一處理完畢再進行批量提交。

3、如果是sql層面的問題,考慮對sql進行優化。比如是否新增必要索引,索引是否生效合理等,獲取的字段是否必須,運算是不是可以不要寫在sql中。

解決方法:

1)where、on、order by等後面新增索引,新增之後考慮索引不生效的情況;

索引不生效的情況,比如like以%開頭、使用or、組合索引沒有按順序使用、字串列資料沒有用單引、對列資料進行運算、使用 <> 、not in 、not exist、!=,或者where後與null做判斷,都會使得mysql放棄索引。

此外,如果有大批量更改資料庫的資料,應該分批進行處理,例如每次提交1萬條資料,直到提交完成。因為更改資料庫資料會導致鎖表,鎖表時間過長,系統就容易崩掉。

2)獲取的資料字段過多時,先關聯查詢出對應行的唯一標識比如id,然後再根據id獲取相關字段,減少資料傳送過程耗時。

C 效能優化實踐

優化準則 1.二八法則 在任何一組東西中,最重要的只佔其中一小部分,約20 其餘80 的儘管是多數,卻是次要的 在優化實踐中,我們將精力集中在優化那20 最耗時的 上,整體效能將有顯著的提公升 這個很好理解。函式a 雖然 量大,但在一次正常執行流程中,只呼叫了一次。而另乙個函式b 量比a 小很多,但...

C 效能優化實踐

優化準則 1.二八法則 在任何一組東西中,最重要的只佔其中一小部分,約20 其餘80 的儘管是多數,卻是次要的 在優化實踐中,我們將精力集中在優化那20 最耗時的 上,整體效能將有顯著的提公升 這個很好理解。函式a雖然 量大,但在一次正常執行流程中,只呼叫了一次。而另乙個函式b 量比a小很多,但被呼...

C 效能優化實踐

一 優化準則 1.二八法則 在任何一組東西中,最重要的只佔其中一小部分,約20 其餘80 的儘管是多數,卻是次要的 在優化實踐中,我們將精力集中在優化那20 最耗時的 上,整體效能將有顯著的提公升 這個很好理解。函式a雖然 量大,但在一次正常執行流程中,只呼叫了一次。而另乙個函式b 量比a小很多,但...