zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

全表扫描导致mysql服务器的cpu飙升到100%

2023-03-14 22:42:56 时间

故障原因

下午15:11左右出现mysql服务器的cpu飙升到100%

image.png



处理过程

阿里云查看性能趋势,发现在15:11:39cpu飙升到100%

image.png



排查思路:

一般引起cpu飙升的原因很可能是扫描行数骤增

查看15:12:00之前的扫描行数,发现15:11:24的时候有一句sql执行delete操作过程中出现了全表扫描

image.png


该sql花了接近10分钟的时间执行完

当前处理方案为联系志成做了一次数据库主备切换,定位该sql的运行场景为清理数据请求,对invoice_audit_log表增加ent_code索引


暴露的问题

本次出现故障的原因主要是sql运行过程中出现了全表扫描,从目前的情况来看,代码中可能还隐藏着类似的情况


改进措施

对于全表扫描的sql语句,目前在遇到的情况下可以增加合适的索引

后续需要对xxx-pro做一些改造,支持多数据源连接,并能支持不同数据源之间的切换,可以将实时性要求较低的慢查询迁移到只读实例上执行