查詢速度慢的原因,如何優化查詢

2021-10-07 02:19:04 字數 1071 閱讀 4507

頁面顯示資料一定要及時的呈現,否則會影響使用者體現.那麼導致頁面載入資料慢或者顯示滯後的原因又是什麼呢?

原因分析

後台資料庫中資料過多,未做資料優化

資料請求-解析-展示處理不當

網路問題

提高資料庫查詢的速度方案

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必須從第乙個記錄開始...