頁面顯示資料一定要及時的呈現,否則會影響使用者體現.那麼導致頁面載入資料慢或者顯示滯後的原因又是什麼呢?
原因分析
後台資料庫中資料過多,未做資料優化
資料請求-解析-展示處理不當
網路問題
提高資料庫查詢的速度方案
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、複雜業務資料通過**層實現組合
其它讀寫分離
MySQL 查詢速度慢
2016年09月30日 14 31 44 以下是基於我結合b 樹的資料結構和對實驗結果的推測作出的判斷,如有錯誤,懇請指正!今天實驗了一下mysql的count 操作優化,以下討論基於mysql5.7 innodb儲存引擎.x86 windows作業系統。建立的表的結構如下 資料量為100萬 首先是...
mysql查詢速度慢的原因 整理版
在以前的部落格中陸續記錄了有關查詢效率方面的文章。今天在整理一下,寫上自己的一些心得記錄如下 常見查詢慢的原因常見的話會有如下幾種 1 沒有索引或沒有用到索引。ps 索引用來快速地尋找那些具有特定值的記錄,所有mysql索引都以b 樹的形式儲存。如果沒有索引,執行查詢時mysql必須從第乙個記錄開始...
mysql查詢速度慢的原因 整理版
在以前的部落格中陸續記錄了有關查詢效率方面的文章。今天在整理一下,寫上自己的一些心得記錄如下 常見查詢慢的原因常見的話會有如下幾種 1 沒有索引或沒有用到索引。ps 索引用來快速地尋找那些具有特定值的記錄,所有mysql索引都以b 樹的形式儲存。如果沒有索引,執行查詢時mysql必須從第乙個記錄開始...