mysql占用cpu特别高的解决_mysql占用CPU过高的解决办法

下面是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 。。结果很失望

不行啊 还得再来

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      |         |

+————-+————+———-+————–+————-+———–+————-+———-+——–+——+————+———+

5 rows in set (0.00 sec)

退出 在 top 一下  负载一直在0.x 很稳定

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值