mysql占用cpu利用率高-优化记录

发布时间 2023-11-22 17:01:59作者: 成佛在西天

场景描述:使用top命令发现mysql占用cpu利用率非常高

 

解决方法

  1、show full processlist;

    发现存在大量sleep线程;而大量sleep线程会占用连接数,当超过max_connections后无法建立新连接、并且可能仍有一些内存未释放,数量太多的话,是会消耗大量无谓的内存的,从而影响性能;

// 设置最大连接数以及最长等待时间	(注这部分配置可以在代码里也可以在mysql配置文件里)
    SHOW VARIABLES LIKE 'max_connections';
	SET GLOBAL max_connections=5000;

	show global variables like 'wait_timeout'
	SET GLOBAL wait_timeout=6000;

 

  2、发现有些sql一直在执行,虽然执行时间很短

    需要在代码中定位到该SQL语句,使用explain 关键字对其分析,看是否是索引失效了;后续再看如何优化SQL

      https://www.cnblogs.com/ReturnOfTheKing/p/17843900.html

 

  3、慢查询SQL日志

// 检查是否开启了慢查询
show variables like '%slow_query_log%'
set GLOBAL slow_query_log = ON/OFF

    如何后台程序使用了druid数据源,也可以通过后台可视化界面更直观查看

 

 

参考文章:

【1】https://blog.csdn.net/vip_linux/article/details/9209485

【2】https://blog.csdn.net/qq_43493747/article/details/121577734