mysql 查詢優化 善用profie利器

2022-03-20 17:33:18 字數 1319 閱讀 8821

一 簡介:利用profile分析慢語句的過程有助於我們進行語句的優化

二 執行過程

set profiling=1;

set profiling=0;

2 執行sql

3 檢視過程消耗

三 結果

1 檢視執行過程耗時

show profile for query 1

checking permissions:檢查許可權

opening tables:開啟表

init : 初始化

system lock :系統鎖

optimizing : 優化

statistics : 統計

preparing :準備

executing :執行

sending data :傳送資料

sorting result :排序

end :結束

query end :查詢 結束

closing tables : 關閉表 /去除tmp 表

freeing items : 釋放物品

cleaning up :清理

值得關注的值 1 sending data 2 sorting result 3 opening tables 以上所有的值並不是都會出現,這點要注意

2 檢視資源消耗

show profile all for query 2

"duration": 持續時間

"cpu_user": cpu使用者

"cpu_system": cpu系統

"context_voluntary":上下文主動切換

"context_involuntary": 上下文被動切換

"block_ops_in": 輸入塊的個數

"block_ops_out": 輸出塊的個數

"page_faults_major": 主分頁錯誤

"page_faults_minor": 次分頁錯誤

值得關注的值 1 cpu相關值 2 context 相關值 3 block相關值

5 表查詢

select state, format(duration, 6) as duration from information_schema.profiling where query_id = 1 order by seq;

6 主要問題

簡介: 本人對於大量的sql進行跟蹤分析,遇到最多的就是sending data的耗時過多情況

分析:sending data 1讀取資料 2 處理(過濾,排序等。。) 3傳送資料,是主要的進行資料處理的過程,包含了所有server層和innodb層的互動

查詢優化(MySQL優化查詢)

關聯查詢太多join 設計缺陷或不得已的需求 資料庫伺服器調優及各個引數設定不適當 緩衝 執行緒數等 慢查詢日誌 找出執行速度慢的sql語句 慢查詢的開啟並捕獲 explain 慢sql分析 show profile查詢sql在mysql伺服器裡面的執行細節和生命週期情況 sql資料庫伺服器的引數調...

mysql統計查詢優化 Mysql查詢優化

效能涉及的層面很多,但是在操作層面,主要有表結構設計優化 索引優化和查詢優化 查詢的生命週期大致可以分為,從客戶端 到服務端 在伺服器上解析 生成執行計畫 執行 返回結果給客戶端 sql執行流程 具體優化技巧 1.消除外連線 2.消除子查詢 盡量用join代替子查詢,雖說mysql查詢優化器會進行優...

MySQL優化 查詢優化

在每乙個消耗大量時間的查詢中,都能看到一些不必要的額外操作 某些操作被額外地重複了很多次 某些操作執行得太慢等。優化查詢的目的就是減少和消除這些操作所花費的時間。查詢效能低下最基本的原因是訪問的資料太多。所以需要考慮是否向資料庫請求了不需要的資料 1 多表關聯時,或獲取單錶資料時,盡量避免不加思考地...