一般項目常用性能調優方法(二)

功能優化

從功能設計上,避免一次性加載大量數據。遇到一次性加載大量數據的,通過以下問題尋找功能優化方式:

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()

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