记一次解决MYSQL占用CPU100%的问题

有张表50W条数据,今天写了个JOB每隔10秒对其进行分组查询并获取每组的第一条数据。

select 
    (
        select KVARH_Total 
        from e_monitorhours 
        where MobusId=a.MobusId
        order by Id DESC
        limit 1
    ) as KVARH_Total
from e_monitorhours as a
where 1=1 and MobusId not in (51,52,53)
group by a.MobusId

数据量小的时候还没问题,但是当达到几十万的时候,CPU100%。当然一开始是不知道的。

后来在网上搜索说执行:

show full processlist

可以看到性能差的SQL语句,然后在info字段里面果断找到。

因为MobusId没加索引,只要给其加上索引即可。

记一次解决MYSQL占用CPU100%的问题

上一篇:SQL SERVER 数据库自动备份及定期删除设置步骤


下一篇:ModbusRtu通信报文详解【二】