mysql效能分析方法 mysql 效能分析方法

2021-10-17 12:59:06 字數 1781 閱讀 3179

1. explain分析法

explain ; // 分析查詢語句

(1) id列數字越大越先執行,如果說數字一樣大,那麼就從上往下依次執行

(2) select_type查詢型別:******、primary、dependent subquery等

(3) table表名

(4) type

從上到下效能依次下降:

system:表中只有一行資料或者是空表,且只能用於myisam和memory表

const:使用唯一索引或者主鍵,返回記錄一定是1行記錄的等值where條件時,通常type是const

eq_ref:對於每個來自於前面的表的行組合,從該表中讀取一行,這可能是最好的聯接型別

ref:對於每個來自於前面的表的行組合,從該表中讀取多行,如果使用的鍵僅僅匹配少量行,該聯接型別是不錯的

range:索引範圍掃瞄,常見於使用》,

all:全表掃瞄資料檔案,然後再在server層進行過濾返回符合要求的記錄

(5) possible_keys:可能用到的索引

(6) key:實際用到的索引

(7) key_len

用於處理查詢的索引長度,如果是單列索引,那就整個索引長度算進去,如果是多列索引,那麼查詢不一定都能使用到所有的列,具體使用到了多少個列的索引,這裡就會計算進去,沒有使用到的列,這裡不會計算進去。key_len只計算where條件用到的索引長度,而排序和分組就算用到了索引,也不會計算到key_len中。

(8) ref:如果是使用的常數等值查詢,這裡會顯示const;如果是連線查詢,被驅動表的執行計畫這裡會顯示驅動表的關聯字段

(9) rows:預估的掃瞄行數

(10) extra

using index:出現這個說明mysql使用了覆蓋索引,避免訪問了表的資料行,效率不錯!

using where:說明伺服器在儲存引擎收到行後將進行過濾。有些where中的條件會有屬於索引的列,當它讀取使用索引的時候,就會被過濾,所以會出現有些where語句並沒有在extra列**現using where這麼乙個說明

using index condition:mysql5.6以後的新特性,會先條件過濾索引,過濾完索引後找到所有符合索引條件的資料行,隨後用 where 子句中的其他條件去過濾這些資料行

using temporary:using temporary:這意味著mysql對查詢結果進行排序的時候使用了一張臨時表

using filesort:排序時無法使用索引,需要用到記憶體或磁碟進行排序

2. profiling分析法

mysql 的 query profiler 是乙個使用非常方便的 query 診斷分析工具,通過該工具可以獲取一條query 在整個執行過程中多種資源的消耗情況,如 cpu,io,ipc,swap 等,以及發生的 page faults,context switche 等等,同時還能得到該 query 執行過程中 mysql 所呼叫的各個函式在原始檔中的位置。

操作如下:

set profiling=1; // 開啟profiling分析

select @@profiling; // 確認profiling分析開啟

; // 執行查詢語句

show profiles; // 查詢剛剛被執行的語句的query_id

show profile for query ; // 分析sql

set profiling=0; // 關閉profiling分析(關閉會話會自動關閉)

mysql 效能分析 Mysql效能分析

優化mysql資料庫效能的十個引數 1 max connections 允許的同時客戶的數量。增加該值增加 mysqld 要求的檔案描述符的數量。這個數字應該增加,否則,你將經常看到 too many connections 錯誤。預設數值是100,我把它改為1024 2 record buffer...

mysql 效能分析 mysql效能分析工具

一 expalin 在sql語句之前加上explain關鍵字就可以獲取這條sql語句執行的計畫 那麼返回的這些欄位是什麼呢?我們先關心一下比較重要的幾個字段 1.select type 查詢型別 1 簡單查詢,沒有union和子查詢 2 priamry 主查詢,有union或子查詢的最外層查詢 3 ...

mysql效能分析

mysql 資料庫的效能問題 大部分情況下是磁碟io的問題 索引沒建好 查詢太複雜 索引問題的話分析慢查詢日誌,explain 他們挨個解決。偶爾也有資料庫cpu不夠的情況,如果併發高cpu不夠很正常,如果併發不高,那很可能就是group by order by random之類的 操作嚴重消耗了資...