mysql问题处理总结

cpu 很高的问题:

cpu消耗过大有慢sql造成,慢sql包括全表扫描,扫描数据量太大,内存排序,磁盘排序,锁争用等

临时解决办法有:杀掉,增加索引,优化语句,表数据量过大的进行分割,暂停慢查询的模块

长期办法:缓存、搜索引擎、优化语句。

链接数问题:可能是查询没有事务注解,或者有特殊的事务注解导致。通过分析当前进程中一直存在的语句来找问题。

 

  1. select * from information_schema.INNODB_TRX

如果查看有很多进程都是运行中。如果一直是运行中,那需要杀掉

select CONCAT('KILL ',id,';') FROM information_schema.INNODB_TRX where ...

 

2、 select * from information_schema.`PROCESSLIST` where info is not null;

现象sql执行状态为:sending data,copying to tmp table,copying to tmp table on disk,sorting result,using filesort,locked;就有问题了。

 

a.sending data:sql正从表中查询数据,如果查询条件没有适当索引,会导致sql执行时间过长

b.copying to tmp table on disk:因临时结果集太大,超过数据库规定的临时内存大小,需要拷贝临时结果集到磁盘上

c.sorting result,using filesort:sql正在执行排序操作,排序操作会引起较多的cpu消耗,可以通过添加索引,或减小排序结果集

 

不同的实例规格iops能力不同,如,iops为150个,也就是每秒能够提供150次的随机磁盘io操作,所以如果用户的数据量很大,内存很小,因iops的限制,一条慢sql就有可能消耗掉所有io资源,而影响其他sql查询,对于数据库就是所有的sql需要执行很长时间才返回结果集,对于应用会造成整体响应变慢。

 

3、临时表最大所需内存需要通过tmp_table_size=1024M设定

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值