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

2021-10-25 14:31:02 字數 2646 閱讀 5126

一、expalin

在sql語句之前加上explain關鍵字就可以獲取這條sql語句執行的計畫

那麼返回的這些欄位是什麼呢?

我們先關心一下比較重要的幾個字段:

1. select_type 查詢型別

1)****** 簡單查詢,沒有union和子查詢

2)priamry 主查詢,有union或子查詢的最外層查詢

3)union 聯合查詢,有union的第二個和以後的查詢

4)subquery 子查詢,有子查詢的除from包含的子查詢

5)derived 派生查詢,from包含的子查詢

6)dependent union, dependent subquery 受到外部表查詢影響的union和subquery

2.type 查詢方式

依次從好到差:system,const,eq_ref,ref,fulltext,ref_or_null,unique_subquery,index_subquery,range,index_merge,index,all

ps:  除了all之外,其他的type都可以使用到索引,除了index_merge之外,其他的type只可以用到乙個索引

1)system只有一行資料或者是空表,且引擎是myisam

2)const 常量 where使用唯一索引(主鍵id,或者其他unique索引字段)搜尋

3)eq_ref

4)ref 常見於輔助索引的等值查詢

5)fulltext 全文索引檢索

6)ref_or_null 與ref方法類似,只是增加了null值的比較

7)unique_subquery 用於where中的in形式子查詢,子查詢返回不重複值唯一值

8)index_subquery 用於where中的iin形式子查詢,使用到了輔助索引或者in常數列表,子查詢可能返回重複值

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

10)index_merge 使用了兩個以上的索引,最後取交集或者並集

11)index 遍歷索引樹

12)all 全表資料掃瞄

3. extra 額外訊息

4. 其他

1)possible key 此次查詢中可能選用的索引,乙個或多個

2)key 查詢真正使用到的索引

3)key_len 索引長度(用到的索引欄位的長度相加,例如用到 id int(8) + age int(5) 索引長度為8+5+2=15,加2是固定額外要加的)

4)rows 估算的掃瞄行數

5)filtered 儲存引擎返回的資料在server層過濾後,剩下多少滿足查詢的記錄數量的百分比

二、mysql慢查詢日誌

1.找到mysql配置檔案(一般在mysql安裝目錄下)

windows為my.ini,linux為my.cnf

[mysqld]

slow_query_log = on

slow_query_log_file = '自定義路徑'

long_query_time = 1

slow_query_log:是否開啟慢查詢日誌

slow_query_log_file:慢查詢日誌的位置

long_query_time:慢查詢的標準(秒)

2.重啟mysql守護程序/服務,檢視是否生效

3.嘗試慢查詢

三、profile 會話級別的效能分析

1.只能在當前會話使用

set profiling = 1;

2.隨便輸入幾句sql查詢語句

4. show profile( 預設顯示最近一次查詢 select sleep(3) 詳細效能報告)

5. show profile for query 2(查詢query_id為2的查詢  select sleep(1)  詳細效能報告)

mysql 效能分析 Mysql效能分析

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

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

1.explain分析法 explain 分析查詢語句 1 id列數字越大越先執行,如果說數字一樣大,那麼就從上往下依次執行 2 select type查詢型別 primary dependent subquery等 3 table表名 4 type 從上到下效能依次下降 system 表中只有一行...

mysql效能分析

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