MySQL提示Writing to net的解決方法

天府雲創發表於2016-12-15
Mysql提示Writing to net解決 計入mysql query查詢時間
 
最近發現某一個資料庫cpu佔用比較過。超過200%了。
首先檢視資料庫慢日誌,設定慢日誌5秒,基本上沒有產生日,沒有超過5秒的語句。
show processlist;
 
後發現幾條select有幾個表查詢需要1-2秒,
explain select * from xxx ,發現沒有走索引,全表掃描,以前資料量少那會很快就出來了,目前查詢總資料都在2萬以內,現在資料量大了,其它表都1000w級了,以前只優化了大表的索引,所以問題就突出了。索引建完後CPU明顯示下降,據我瞭解,msyql   cpu佔用高,80%的情況未使用索引有關。
 
在次show processlist
發現多條語句狀態為Writing to net
通過分析基本都是select 語句,都是查詢資料太資料庫返回網路回寫不贏,
檢視show global variables like "global max_allowed_packet"  只有1M
 
通過增加快取
set global max_allowed_packet =134217728
 
問題得到解決!原因是多條select 返回資料越過快取超過預設設定。

相關文章