RT:记一次MySQL数据库进程占用CPU过高问题及处理过程
场景:本人医院信息科员工
事件:检查预约系统每天8:00左右准时宕机,MySQL进程占用CPU接近100%
8核cpu所以800%为满 CPU使用率监控 CPU使用率监控对其系统分析现行配置的CPU资源远大于其系统需要的资源,与厂家沟通~~~
厂家表示需要提高CPU资源来缓解CPU使用率过高的问题,因前期本人分析过其所需要资源,遂与其沟通让厂家查看自己产品是否有BUG或有其他优化的地方。
一个星期后问题并没有解决,与厂家沟通陷入僵局,厂家非说自己的系统并无问题,就是需要提高cpu资源,异常坚决!!
这个系统只有20几个终端在用,与医院其他系统相比,所需的资源理论上应该不多,因为其他系统有近千个终端在用,所以本着对所学专业、个人能力的信心以及对工作岗位负责的态度(专治各种不服的信心及态度),与其发生争吵,放下一句“如果我给你们找到问题的话,我会建议医院重新评估你们公司的技术实力!”
很是火大!!!!
本人从来没有接触过MySQL,平时接触的大多是Oracle,sqlserver也略有了解,但关系型数据库大多都大同小异,百度了下MySQL相关信息,下载客户端什么的~(MySQL “零”基础~~~~~)
登录数据库后 命令行执行 show full processlist; 查看正在执行的语句
show full processlist;用 EXPLAIN 分析查询语句
EXPLAIN 分析查询语句TYPE:ALL Rows:53916 !!!WTF!!!
这是遍历了这个表的所有数据啊??!!
查看后发现这个表没有加索引!!
测试下~~
索引后测试 索引后测试添加索引以后CPU使用率一下子就降下来了!!
CPU使用率好了 不说了,找厂家算账去了!!
网友评论