一般專案常用效能調優方法(二)
阿新 • • 發佈:2018-12-24
功能優化
從功能設計上,避免一次性載入大量資料。遇到一次性載入大量資料的,通過以下問題尋找功能優化方式:
1. 設定預設查詢條件,僅載入部分資料。如對於監測資料的查詢分析,可預設僅查詢當天或當月的資料;
2. 將資料展示使用類似TAB的元素分開,根據使用者操作,採用AJAX分步載入資料
3. 實時性要求不高的資料,不要實時查詢,可快取或者放到Session中
程式碼調優
SQL優化
1. 儘量使用join,不要使用子查詢
2. 可能的情況下,儘量使用UNION ALL來代替UNION
小竅門:可使用PL/SQL 或者 SQLServer Management Studio檢視SQL的執行計劃,進而對SQL進行優化。
快取的使用
關於EhCache、Redis的使用,請自行百度。
耗時操作的處理
需求:對某事項進行審批,審批通過後發郵件給提交人。發郵件即為一個耗時操作,如果審批通過後,在當前執行緒中執行發郵件的操作,則會阻塞當前執行緒,直到郵件傳送結束。經驗分享:
耗時操作可以啟動一個新的執行緒執行,避免阻塞當前執行緒(request)。
或者將耗時操作僅僅設定一個未執行的狀態,後臺跑一個QZ任務,定時批量執行。
程式碼邏輯調優
1. 避免for 多層巢狀
2. 避免對大陣列的迭代對比,考慮使用Arrays.binarySearch()