mysql 查詢效能優化

2021-08-03 00:24:41 字數 983 閱讀 1134

mysql

執行查詢,客戶端向

mysql

傳送請求的時候,

mysql

伺服器執行一系列過程,保證查詢語句在

mysql

中得到最高效能的效率。

、客戶端傳送一條查詢給伺服器 2

、伺服器先檢查查詢快取,如果命中了快取,則返回儲存在快取中的結果。否則,進入下乙個階段。 3

、伺服器進行

sql解析、預處理,再由優化器生成對應的執行計畫 4

、mysql

根據優化器生成的執行計畫,呼叫儲存引擎的

api來執行查詢 5

、返回結果給客戶端

當然,如果客戶端傳送的

sql語句已經是優化過的,那麼執行效率更高,下面介紹幾種特定型別的優化: ①

count()查詢

count

函式可以統計某個列值的數量,也可以統計行數;在統計列值時不統計

null

值。經試驗,

count(*)

的效能比括號內指定乙個列的效能更好。 使用

count

時的常見錯誤:在括號內指定乙個列卻希望統計結果集的行數。因此統計結果集的行數時,最好使用

count(*)

,這樣意義清晰,而且效能更好。

②關聯查詢

如無其他理由,需要在關聯順序中的第二張表

(及之後

)的相應列上建立索引。

③子查詢

關於子查詢最好的優化建議是盡可能使用關聯查詢代替 ④

union查詢

除非確實需要伺服器消除重複行,否則一定要用

union all

⑤其他查詢

例如group by

、distinct

、limit

等查詢時,建立對應的索引,效率會不錯。

mysql查詢效能優化 MySQL 查詢效能優化

在日常開發中,程式設計師寫的最多的除了bug之外,應該算是sql語句了。sql的質量影響了程式的響應速度,只有利用mysql的特性,才能讓mysql更有效的執行查詢sql,充分發揮mysql的優勢,並避開它的弱點。為什麼查詢速度會慢?在編寫sql之前,需要清楚一點 真正重要的是響應時間。如果我們把查...

mysql查詢效能優化

mysql執行查詢的過程 如圖 1 客戶端首先通過客戶端 伺服器通訊協議與mysql伺服器建立起連線 2 客戶端傳送一條sql語句 判斷是否為查詢語句,如果是查詢語句,則先在查詢快取區雜湊查詢對應sql的資料,如果未找到,則需要呼叫解析器解析 預處理 再由優化器生成對應的查詢執行計畫 3 mysql...

MySql查詢效能優化

在訪問資料庫時,應該只請求需要的行和列。請求多餘的行和列會消耗mysql伺服器的cpu和記憶體資源,並增加網路開銷。例如在處理分頁時,應該使用limit限制mysql只返回一頁的資料,而不是向應用程式返回全部資料後,再由應用程式過濾不需要的行。當一行資料被多次使用時可以考慮將資料行快取起來,避免每次...