学习啦>学习电脑>电脑硬件知识>CPU知识>

mysqlcpu占用过高怎么解决

时间: 沈迪豪908 分享

  相信大家都会使用mysql,但是如果我们cpu占用过高该怎么处理呢?跟着学习啦小编一起学习cpu占用过高该怎么处理吧。

  mysqlcpu占用过高的案例分析

  今天早上起来 机器报警 一查负载一直都在4以上

  top了一下 发现 mysql 稳居 第一 而且相当稳定 我擦

  重启一下mysql不行

  mysql> show processlist;一下

  发现xxx网站有两条 查询语句 一直 在列,我擦 该站 也就30多万条记录 量也不大 不可能是机器性能问题

  忽然 记得以前在网上看过说是 tmp_table_size值太小会造成这种情况;

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

  一看是默认的32M(显示出来的是字节数)

  于是翁就开心的改了起来 增加到256 重启 mysql 。。结果很失望

  不行啊 还得再来

  select 一下该表 发现 里面 都是论坛留言的东西 量还挺大

  于是:

  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 里面出现的 就是 select * from bbs_message where board_id=xxx and parent_id=xxx

  和 select * from bbs_message where parent_id=xxx

  只要这两条一出现 cpu就上去了

  于是 从索引入手:

  增加两条索引

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

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

  最后查看一下索引结果:

  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占用过高怎么解决相关文章:

1.mysql耗内存吗?应该怎么处理?

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

mysqlcpu占用过高怎么解决

相信大家都会使用mysql,但是如果我们cpu占用过高该怎么处理呢?跟着学习啦小编一起学习cpu占用过高该怎么处理吧。 mysqlcpu占用过高的案例分析 今天早上起来 机器报警 一查负载一直都在4以上 top了一下 发现 mysql 稳居 第一 而且相当稳
推荐度:
点击下载文档文档为doc格式
2030068