天天看點

伺服器mysql占用_mysql占用伺服器cpu過高的原因以及解決辦法

登陸Mysql:

mysql -p -u -p

mysql> show processlist;

show processlist 指令詳解:

processlist指令的輸出結果顯示了有哪些線程在運作,可以幫助識别出有問題的查詢語句。

下面是MYSQL占用CPU高處理的一個例子,希望對遇到類似問題的朋友們有點啟發。一般來說MYQL占用CPU高,多半是資料庫查詢代碼問題,查詢資料庫過多。是以一方面要精簡代碼,另一方面最好對頻繁使用的代碼設定索引。

今天早上起來 機器報警 一查負載一直都在4以上

top了一下 發現 mysql 穩居 第一 而且相當穩定 我擦 重新開機一下mysql不行 mysql> show processlist;一下 發現xxx網站有兩條 查詢語句 一直 在列,我擦 該站 也就30多萬條記錄 量也不大 不可能是機器性能問題

忽然 記得以前在網上看過說是 tmp_table_size值太小會造成這種情況; 于是mysql -pxxx -e "show variables;"  >tmp 一看是預設的32M(顯示出來的是位元組數) 于是翁就開心的改了起來 增加到256 重新開機 mysql 。。結果很失望

于是 從索引入手:

增加兩條索引

mysql> alter table bbs_message add index parentid(parent_id);

alter table bbs_message add index chaxunid(board_id,parent_id);

最後檢視一下索引結果:

詳細出處參考:http://www.jb51.net/article/34862.htm