mysql語句性能分析工具之profiling用法
以往我們已經(jīng)介紹了一個mysql的分析工具:mysql慢查詢?nèi)罩痉治龉ぞ撸╬t-query-digest),可以看我的文章:mysql慢查詢?nèi)罩痉治龉ぞ撸╬t-query-digest)
一、profiling的介紹
sql查詢慢的情況很常見,對于慢sql的優(yōu)化有三個步驟,又稱優(yōu)化三板斧。
- 板斧一:查看執(zhí)行計劃explain
- 板斧二:建立合適索引
- 板斧三:使用合適的連接關(guān)系和過濾條件來實現(xiàn)sql語句的優(yōu)化
如果執(zhí)行計劃正確sql語句的性能還很慢,可以通過mysql的profiling工具進行定位分析。
為了更精準的定位一條sql語句的性能問題,需要清楚的直到這條sql語句運行時消耗多少系統(tǒng)資源。
mysql中profiling工具可以滿足此需求,通過該工具可以獲取一條sql語句在執(zhí)行過程中多種資源的消耗情況——比如cpu,io,ipc,swap等資源消耗情況。
二、profiling使用方法
2.1、啟用命令
set profiling = 1;
2.2、啟動命令后,運行想要查詢性能的sql語句
select * from xiatui where name like '0%' and age = '9803' and sex =0;
2.3、查詢上述sql語句信息
show profiles;

說明:
- Query_ID:sql語句的id編號,這個編號會在步驟4、5用到
- Duration:sql語句執(zhí)行時長
- Query:具體的sql語句
2.4、查詢資源消耗情況
SHOW PROFILE CPU, BLOCK IO FOR QUERY 360;
上述360就是第三步驟的Query_ID值,想要查詢哪條sql語句,就輸入哪條sql語句對應(yīng)的id值。

2.5、查詢某條sql語句的具體執(zhí)行時間
SHOW PROFILE FOR QUERY 391;

優(yōu)化建議:
如果想要優(yōu)化某條sql語句,可以關(guān)注一下該條sql語句的show profile結(jié)果中每個階段的耗時,分析耗時最長的階段。
如果status列出現(xiàn)下面的信息就可以考慮對sql語句進行優(yōu)化:
- converting heap to MyISAM:查詢結(jié)果太大,內(nèi)存不夠用
- creating tmp table:創(chuàng)建了臨時表。先拷貝數(shù)據(jù)到臨時表,用完后再刪除臨時表。
- copying to tmp table on disk:把內(nèi)存中臨時表復(fù)制到磁盤上
- locked:發(fā)生了死鎖行為。
2.6、關(guān)閉
set profiling = 0;
三、整體使用過程
set profiling = 1; select /*+ no_icp(xiatui) */ * from xiatui where name like '0%' and age = '9803' and sex =0; select * from xiatui where name like '0%' and age = '9803' and sex =0; show profiles; set profiling = 0;
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
mysql字符串的‘123’轉(zhuǎn)換為數(shù)字的123的實例
下面小編就為大家?guī)硪黄猰ysql字符串的‘123’轉(zhuǎn)換為數(shù)字的123的實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-01-01
Mysql select in 按id排序?qū)崿F(xiàn)方法
有時候我們在后臺選擇了一系列的id,我們想安裝填寫id的順序進行排序,那么就需要下面的order by方法,測試通過2013-03-03
MySQL 8.0.18給數(shù)據(jù)庫添加用戶和賦權(quán)問題
這篇文章主要介紹了MySQL 8.0.18給數(shù)據(jù)庫添加用戶和賦權(quán)問題,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-12-12
MySql 存儲引擎和索引相關(guān)知識總結(jié)
這篇文章主要介紹了MySql 存儲引擎和索引相關(guān)知識總結(jié),文中講解非常細致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下2020-06-06

