解決mysql占用cpu資源100%的問題
一個Win2003服務器,以前就跑了一個tomcat實例也沒用nginx做前端代理,這個tomcat裡面帶了不少網站,但是訪問量並不是很大,基本屬於業務集中型。
解決的過程其實也挺easy,這裡記錄一下思路。
www.2cto.com
首先把mysql服務器升級到最新的版本,盡量避免是mysql本身問題。
然後在my.ini裡面mysqld裡面配置:
slow-query-log = 1
slow-query-log-file = slow.log
重啟mysql這樣所有'slow'的都會記錄到日志裡面。
www.2cto.com
然後再到慢的時候就能看到具體什麼sql引發了慢的問題(slow.log在datadir下),最後發現慢的那個表查詢裡面username沒有加索引而且並發不小,開始數據不多還沒問題,後來數據多了些達到了十幾萬的時候,並發查沒索引的表就出來問題了,每次比較十幾萬次字符串是挺要命。
給這個字段加上索引,馬上cpu就降下來了。