高效能的MySQL(3)單條查詢問題還是伺服器問題

來源:互聯網
上載者:User

發現問題的時候,要確定是單條查詢的問題還是伺服器的問題,如果伺服器上的所有程式都變慢了,又突然都變好了,每一條查詢都變慢了,那麼慢查詢就不一定是原因,反過來說,如果伺服器整體運行沒有問題,只有某條查詢偶爾變慢,就需要將注意力放到這條特定查詢上。

為了確定問題的根源,一般我們通過三種技術來解決。

1、show global status

這個方法實際就是以較高的頻率比如一秒執行一次show global status命令來捕獲資料,問題出現時,則通過某些計數器(比如 Threads_running、Threads_connected、Questions、Queries)的變化來發現。這個對服務的影響比較小。例如下面的例子

通過awk計算輸出每秒的查詢數、線程串連數和正在執行查詢的線程數,通過一段時間的運行,把資料繪製成映像,可以有利於分析和定位問題。

2、使用show processlist

這個方法通過不停的捕獲 show processlist的輸出,來觀察是否有大量線程處於不正常狀態。

使用show processlist命令時,在尾部加上\G可以垂直輸出,可以方便的結合sort|uniq|sort一類的命令來計算某個列值出現的次數

如下面的例子

因為是我本地的測試環境,所以沒有什麼資料,另外ubuntu下的截圖太不好用了,只能將就了。

如果MySQL版本較新也可以採用上一篇介紹的方法,查詢INFORMATIONA_SCHEMA.PROCESSLIST表。

比如:state大量的線程處於“freeing items”狀態是出現了大量有問題查詢的很明顯的特徵

MyISAM一個典型的問題是,他的表層級鎖定,在寫請求很多時,可能迅速導致伺服器層級的線程堆積。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.