您好,登錄后才能下訂單哦!
本文主要給大家介紹獲取MySQL整體性能的狀態,希望可以給大家補充和更新些知識,如有其它問題需要了解的可以持續在億速云行業資訊里面關注我的更新文章的。
首先對一個數據庫服務器進行性能優化需要先知道服務器當前主要的性能問題出現在哪里,在這點sql server也是類似,sql server首先會分析當前服務器的等待類型的情況。
我們可以使用show [session|global] status命令來獲取想要的信息,默認是顯示當前連接的所有統計參數值,還可以直接查詢information_schema數據庫中的session_status表。
show status; #或者使用use information_schema;select * from SESSION_STATUS;
我當前的mysql版本是5.6.21,總共查詢出了341行參數。
這里有一篇文章詳細分析了每一個參數值的所代表的意思:http://blog.sina.com.cn/s/blog_68baf43d0100vu2x.html
接下來我們主要分析里面的com_參數,com_參數各種SQL對數據庫執行的操作。
show status like 'com_%'; #或者使用use information_schema;select * from SESSION_STATUS WHERE variable_name like 'com_%';
各種SQL操作計數總共有142個,不同的版本結果不一樣,接下來就來測試一下,表中的alter table的當前連接的操作次數為0,現在我修改一下表看看結果。
ALTER TABLE test ADD Name CHAR(10) NOT NULL; show status like 'com_%';
可以看到alter_table計數增加了1。
com_計數里面有幾個比較重要的參數,其它的一些參數也經常用來做參考。
com_delete:執行delete操作的次數。
com_select:執行select操作的次數。
com_insert:執行insert操作的次數,對應批量插入操作無論里面循環多少次都只算一次。
com_update:執行update操作的次數。
com_commit:執行事務提交的次數。
com_rollback:執行事務回滾的次數。
上面的計數包括所有的存儲引擎,有幾個參數是單獨針對innodb存儲引擎,記錄了read,inserted,updated,deleted每種操作的行數。
show status like 'innodb_rows%'; #或者使用use information_schema;select * from SESSION_STATUS WHERE variable_name like 'innodb_rows%';
1.可以通過慢查詢日志來定位,慢查詢只能查詢已經執行結束的語句,如果要查詢當前正發生的問題無法做到,這個方法在后面一篇文章介紹mysql日志會詳細介紹。
由于我將慢查詢的時間設為0.01秒,所以超過這個值的都會記錄下來,上面的截圖就是慢查詢日志里面的一條SQL操作記錄,記錄中記錄了在什么時候執行的操作,執行操作的用戶信息,執行花了0.19秒,鎖花了0.001秒,返回了0行,查詢了1行。
2.使用show processlist命令查詢當前進行線程,該命令經常用來分析當前服務器的狀況。
上圖中有后四個字段需要理解,其中
command:記錄了當前查詢的一個狀態,休眠(sleep),查詢(query),連接(connect)。
Time:持續的時間,單位是秒,經常會使用這個值來做分析操作。
state:當前語句的狀態,這個狀態值很重要,這個狀態值很多,大家可以去了解一下,上圖就是等待表解鎖。
info:記錄操作語句
3.借助第三方監控工具
看了以上關于獲取MySQL整體性能的狀態,希望能給大家在實際運用中帶來一定的幫助。本文由于篇幅有限,難免會有不足和需要補充的地方,如有需要更加專業的解答,可在官網聯系我們的24小時售前售后,隨時幫您解答問題的。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。