原因分析
后台數據庫中數據過多,未做數據優化
數據請求-解析-展示處理不當
網絡問題
提高數據庫查詢的速度方案
SQL 查詢速度慢的原因有很多,常見的有以下幾種:
1、沒有索引或者沒有用到索引(查詢慢最常見的問題,是程序設計的缺陷)
2、I/O吞吐量小,形成了瓶頸效應。
3、沒有創建計算列導致查詢不優化。
4、內存不足
5、網絡速度慢
6、查詢出的數據量過大(可以采用多次查詢,其他的方法降低數據量)
7、鎖或者死鎖(這也是查詢慢最常見的問題,是程序設計的缺陷)
8、sp_lock,sp_who,活動的用戶查看,原因是讀寫競爭資源。
9、返回了不必要的行和列
10、查詢語句不好,沒有優化
SQL優化
1、恰當地使用索引
必要時建立多級索引,分析執行計划,通過表數據統計等方式協助數據庫走正確的查詢方式,該走索引就走索引,該走全表掃描就走全表掃描;
2、對查詢進行優化,盡可能避免全表掃描
首先考WHERE 及ORDER BY涉及列上建立索引
3、數據庫表的大字段剝離
假如一個表的字段數有100多個,拆分字段,保證單條記錄的數據量很小
4、字段冗余
減少跨庫查詢或多表連接操作
5、表的拆分
表分區和拆分,無論是業務邏輯上的拆分(如一個月一張報表、分庫)還是無業務含義的分區
6、查詢時不要返回不需要的行、列
7、減少SQL中函數運算與其它計算
8、升級硬件
9、提高網速
10、擴大服務器的內存
11、增加服務器 CPU個數
代碼過程優化
1、緩存,在持久層或持久層之上做緩存
使用ehcache緩存,這個一般用於持久層的緩存,提供持久層、業務層的快速緩存,或其它緩存
2、放棄關系數據庫的某些特性,引入NoSQL數據庫
3、復雜業務數據通過代碼層實現組合
其它
讀寫分離