學(xué)習(xí)啦>學(xué)習(xí)電腦>電腦硬件知識>CPU知識>

mysqlcpu占用過高怎么解決

時間: 沈迪豪908 分享

  相信大家都會使用mysql,但是如果我們cpu占用過高該怎么處理呢?跟著學(xué)習(xí)啦小編一起學(xué)習(xí)cpu占用過高該怎么處理吧。

  mysqlcpu占用過高的案例分析

  今天早上起來 機(jī)器報警 一查負(fù)載一直都在4以上

  top了一下 發(fā)現(xiàn) mysql 穩(wěn)居 第一 而且相當(dāng)穩(wěn)定 我擦

  重啟一下mysql不行

  mysql> show processlist;一下

  發(fā)現(xiàn)xxx網(wǎng)站有兩條 查詢語句 一直 在列,我擦 該站 也就30多萬條記錄 量也不大 不可能是機(jī)器性能問題

  忽然 記得以前在網(wǎng)上看過說是 tmp_table_size值太小會造成這種情況;

  于是mysql -pxxx -e "show variables;" >tmp

  一看是默認(rèn)的32M(顯示出來的是字節(jié)數(shù))

  于是翁就開心的改了起來 增加到256 重啟 mysql 。。結(jié)果很失望

  不行啊 還得再來

  select 一下該表 發(fā)現(xiàn) 里面 都是論壇留言的東西 量還挺大

  于是:

  mysql> show columns from bbs_message;

  +-----------+--------------+------+-----+---------+----------------+

  | Field | Type | Null | Key | Default | Extra |

  +-----------+--------------+------+-----+---------+----------------+

  | msg_id | int(11) | NO | PRI | NULL | auto_increment |

  | board_id | int(11) | NO | MUL | 0 | |

  | parent_id | int(11) | NO | MUL | 0 | |

  | root_id | int(11) | NO | MUL | 0 | |

  一直在show processlist 里面出現(xiàn)的 就是 select * from bbs_message where board_id=xxx and parent_id=xxx

  和 select * from bbs_message where parent_id=xxx

  只要這兩條一出現(xiàn) cpu就上去了

  于是 從索引入手:

  增加兩條索引

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

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

  最后查看一下索引結(jié)果:

  mysql> show index from bbs_message;

  +-------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+

  | Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment |

  +-------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+

  | bbs_message | 0 | PRIMARY | 1 | msg_id | A | 2037 | NULL | NULL | | BTREE | |

  | bbs_message | 1 | rootid | 1 | root_id | A | 49 | NULL | NULL | | BTREE | |

  | bbs_message | 1 | chaxunid | 1 | board_id | A | 3 | NULL | NULL | | BTREE | |

  | bbs_message | 1 | chaxunid | 2 | parent_id | A | 135 | NULL | NULL | | BTREE | |

  | bbs_message | 1 | parentid | 1 | parent_id | A | 127 | NULL | NULL | | BTREE | |

  +-------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+

mysqlcpu占用過高怎么解決相關(guān)文章:

1.mysql耗內(nèi)存嗎?應(yīng)該怎么處理?

2.linux下如何看每個CPU的使用率

mysqlcpu占用過高怎么解決

相信大家都會使用mysql,但是如果我們cpu占用過高該怎么處理呢?跟著學(xué)習(xí)啦小編一起學(xué)習(xí)cpu占用過高該怎么處理吧。 mysqlcpu占用過高的案例分析 今天早上起來 機(jī)器報警 一查負(fù)載一直都在4以上 top了一下 發(fā)現(xiàn) mysql 穩(wěn)居 第一 而且相當(dāng)穩(wěn)
推薦度:
點(diǎn)擊下載文檔文檔為doc格式
2030068