全表扫描导致CPU高的问题
更新时间 2026-01-06 11:11:54
最近更新时间: 2026-01-06 11:11:54
本文介绍了MySQL全表扫描导致CPU高的问题的解决方法。
场景描述
mysqld CPU开销 100%。
原因分析
在控制台查看MySQL实例监控信息,确定是数据库实例的CPU占用高。
查看监控信息的具体操作,请参见查看监控指标。
查看
processlist。虽然无明显AP类查询,但有个select count(1)的并发较高。
explain sql查看执行计划,发现该sql采用全表扫描的方式。
解决方案
该SQL语句中存在where uuid=$x的查询,为了避免进行全表扫描,可以为uuid增加索引。

上图加索引前,cpu的开销为200%。
sql:alter table t_xx_picture add index idx_uuid(uuid);

上图加索引后,cpu开销由200%降低至22.9%。