本篇內容主要講解“mysql性能檢查和調優的方法”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“mysql性能檢查和調優的方法”吧!
我一直是使用mysql這個軟件,它工作比較穩定,效率也很高。在遇到嚴重性能問題時,一般都有這么幾種可能:
1、索引沒有建好;
2、sql寫法過于復雜;
3、配置錯誤;
4、機器實在負荷不了;
1、索引沒有建好
如果看到消耗的cpu很大,可以用mysql的client工具來檢查。
在linux下執行
/usr/local/mysql/bin/mysql -hlocalhost -uroot -p
輸入密碼,如果沒有密碼,則不用-p參數就可以進到客戶端界面中。
看看當前的運行情況
show full processlist
可以多運行幾次
這個命令可以看到當前正在執行的sql語句,它會告知執行的sql、數據庫名、執行的狀態、來自的客戶端ip、所使用的帳號、運行時間等信息
在我的cache后端,這里面大部分時間是看不到顯示任何sql語句的,我認為這樣才算比較正常。如果看到有很多sql語句,那么這臺mysql就一定會有性能問題
如果出現了性能問題,則可以進行分析:
1、是不是有sql語句卡住了?
這是出現比較多的情況,如果數據庫是采用myisam,那么有可能有一個寫入的線程會把數據表給鎖定了,如果這條語句不結束,則其它語句也無法運行。
查看processlist里的time這一項,看看有沒有執行時間很長的語句,要留意這些語句。
2、大量相同的sql語句正在執行
如果出現這種情況,則有可能是該sql語句執行的效率低下,同樣要留意這些語句。
然后把你所懷疑的語句統統集合一下,用desc(explain)來檢查這些語句。
首先看看一個正常的desc輸出:
mysql> desc select * from imgs where imgid=1651768337;
+----+-------------+-------+-------+---------------+---------+---------+-------+------+-------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+-------+---------------+---------+---------+-------+------+-------+
| 1 | SIMPLE | imgs | const | PRIMARY | PRIMARY | 8 | const | 1 | |
+----+-------------+-------+-------+---------------+---------+---------+-------+------+-------+
1 row in set (0.00 sec)
注意key、rows和Extra這三項,這條語句返回的結果說明了該sql會使用PRIMARY主鍵索引來查詢,結果集數量為1條,Extra沒有顯示,證明沒有用到排序或其他操作。由此結果可以推斷,mysql會從索引中查詢imgid=1651768337這條記錄,然后再到真實表中取出所有字段,是很簡單的操作。
到此,相信大家對“mysql性能檢查和調優的方法”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。