mysql查詢效能優化

2022-01-10 17:58:06 字數 865 閱讀 3750

mysql查詢過程:

客戶端傳送查詢請求。

伺服器檢查查詢快取,如果命中快取,則返回結果,否則,繼續執行。

伺服器進行sql解析,預處理,再由優化器生成執行計畫。

mysql呼叫儲存引擎api執行優化器生成的執行計畫進行查詢。

返回結果。

優化資料訪問:

只獲取必要的資料:

避免額外的記錄掃瞄:查詢開銷衡量標準(響應時間、掃瞄行數、返回行數)

掃瞄的行數和返回的行數:一般1:1-->1:10。

掃瞄行數和訪問型別:同一行資料的不同訪問方式(掃瞄表、索引、範圍訪問、唯一索引、常熟引用、單值訪問)的掃瞄行數的差異,通常增加索引是乙個最直接的方法。大量掃瞄返回少量行數的查詢優化技巧:

重構查詢方式:

複雜查詢與簡單查詢的選擇:複雜查詢考慮的是網路通訊,查詢解析及優化的因素。將複雜查詢分解為多個組合的簡單查詢有時會是不錯的選擇。

切分查詢:將大查詢切分為多個相同的小查詢。例如:刪除舊資料時。

分解關聯查詢:將分解的單個查詢在應用層進行整合。

特殊優化:

count(*) 並不是統計所有列,而是是統計行數。

myisam的count()在沒有where條件的時非常快,優於其它引擎。

快速、精確、實現簡單 只能滿足其二。

優化關聯查詢:

5.6之前盡可能使用關聯查詢代替子查詢。

union查詢:mysql通過建立填充臨時表的方式來執行。

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

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

mysql 查詢效能優化

mysql 執行查詢,客戶端向 mysql 傳送請求的時候,mysql 伺服器執行一系列過程,保證查詢語句在 mysql 中得到最高效能的效率。客戶端傳送一條查詢給伺服器 2 伺服器先檢查查詢快取,如果命中了快取,則返回儲存在快取中的結果。否則,進入下乙個階段。3 伺服器進行 sql解析 預處理,再...

mysql查詢效能優化

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