我在这里就不说是什么公司和系统了。
情况是:我在2022-04-14晚上升级程序后,发现后台服务器的cpu特别慢,mysql执行语句特别慢。
第一步排查: top命令,查看是哪个进程占用cpu => 发现是mysql
第二步打开mysql: show processlist;
或者 show full processlist;
发现很多进程,大概有500多个,此时是晚上,业务量很少,都有500进程,事情很严重。
第三步打开慢查询日志和全部执行记录sql语句日志: show variables like '%slow_query%'
, 或者 show variables like '%gen%'
通过日志发现是一个查询语句耗时间特别长,通过explain来发现没有走索引,由于两个表数据量都超过了1400万,连表查询,缺少索引。
发现是系统更新后,这个查询语句变化。不知道是不是开发环境数据量特别小的原因,没有及时排查到。