MySQL数据库CPU报警处理方法

业务背景:
生产环境,数据库突然CPU太高报警
解决方案:
1、查看数据库进程,找出当前时刻执行较慢的sql,并优化,如加索引等
SELECT * FROM information_schema.processlist a WHERE a.COMMAND != ‘Sleep’ ORDER BY a.TIME DESC;
此方法能较快解决数据库CPU报警
2、找DBA查出慢sql文件,此文件不是实时的,可能是一天的,或者一周的,会显示有调用次数,可按调用频率或者执行时长来划分优化的优先级
3、从业务上做分析,比如把一些实时性要求不太高的,做成定时任务,或者引用消息中间件等
示例:
业务背景:
系统的待办是用户登录之后实时计算的,待办类型多,每个类型的待办查起来也很慢,再加上用户很多,导致待办会占用很大部分的数据库资源
解决方案:
引用了消息中间件MQ,把所有的待办放到一张表里,每次用户登录只需要访问这一张表,就可以查出所有的待办。

你可能感兴趣的:(数据库)