MySQL占用CPU过高排查过程及可能优化方案

 更新时间:2024年01月14日 16:06:53   作者:风暴飘絮  
这篇文章主要介绍了MySQL占用CPU过高排查过程及可能优化方案,具有很好的参考价值,希望对大家的学习或工作有所帮助,感兴趣的朋友可以参考下

1.查看生产DB服务器top列表,

执行 top 命令

2.使用root用户登录mysql

执行 show full processlist 查看慢查询,反复执行,如果发现一直有select 查询语句存在,为了缓解DB服务器压力,直接使用kill命令杀掉

kill 慢查询的id

如果服务器压力缓解,恢复正常。

3.查询是否有锁问题

show OPEN TABLES where In_use > 0;

查看正在锁的事务

SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;

查看等待锁的事务

SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;

4.杀掉当前所有的MySQL连接

mysqladmin -uroot -p processlist|awk -F "|" '{print $2}' |xargs -n 1 mysqladmin -uroot -p kill

Mysql占用CPU过高如何优化

1.打开慢查询日志,查询是否是某个SQL语句占用过多资源,如果是的话,可以对SQL语句进行优化,比如优化 insert 语句、优化 group by 语句、优化 order by 语句、优化 join 语句等等;

2.考虑索引问题,使用explain关键字分析SQL

3.定期分析表,使用optimize table;

4.优化数据库对象;

5.考虑是否是锁问题;

6.调整一些MySQL Server参数,比如key_buffer_size、table_cache、innodb_buffer_pool_size、innodb_log_file_size等等;

7.如果数据量过大,可以考虑使用MySQL集群或者搭建高可用环境。

以上就是MySQL占用CPU过高排查过程及可能优化方案的详细内容,更多关于MySQL占用CPU过高的资料请关注脚本之家其它相关文章!

相关文章

  • windows下mysql 8.0.27 安装配置方法图文教程

    windows下mysql 8.0.27 安装配置方法图文教程

    这篇文章主要为大家详细介绍了windows下mysql 8.0.27 安装配置方法图文教程,文中安装步骤介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • MySQL学习笔记之数据定义表约束,分页方法总结

    MySQL学习笔记之数据定义表约束,分页方法总结

    这篇文章主要介绍了MySQL学习笔记之数据定义表约束,分页方法,结合实例形式总结分析了数据定义、主键、外键、自增长、约束等概念与用法,并给出了关于分页的实例与相关操作技巧,需要的朋友可以参考下
    2016-09-09
  • Windows中MySQL root用户忘记密码解决方案

    Windows中MySQL root用户忘记密码解决方案

    在实际应用中,经常会出现忘记mysql管理员用户root的密码的情况出现,那么我们如何来设置一个新密码从而登录数据库呢,下面我们来探讨下
    2014-07-07
  • Mysql中如何删除表重复数据

    Mysql中如何删除表重复数据

    这篇文章主要介绍了Mysql中如何删除表重复数据问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • mysql主从及遇到的问题解决

    mysql主从及遇到的问题解决

    本文详细介绍了如何使用Docker配置MySQL主从复制,首先创建了两个文件夹并分别配置了`my.cnf`文件,通过执行脚本启动容器并配置好主从关系,文中还提到了一些常见问题的解决方法,如配置路径错误导致的冲突和slave的change连接错误
    2025-01-01
  • MySQL运行报错:“Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre”解决方法

    MySQL运行报错:“Expression #1 of SELECT list is not in GR

    这篇文章主要给大家介绍了关于MySQL运行报错:“Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre”的解决方法,文中将解决方法介绍的非常详细,需要的朋友可以参考下
    2022-06-06
  • MySql通过ip地址进行访问的方法

    MySql通过ip地址进行访问的方法

    这篇文章主要介绍了MySql通过ip地址进行访问的方法,首先要登录mysql,切换数据库然后授权,具体代码详情大家参考下本文
    2018-06-06
  • 解决MySQL5.1安装时出现Cannot create windows service for mysql.error:0

    解决MySQL5.1安装时出现Cannot create windows service for mysql.error

    这篇文章主要介绍了解决MySQL5.1安装时出现Cannot create windows service for mysql.error:0问题的方法
    2016-06-06
  • MySQL批量替换数据库字符集的实用方法(附详细代码)

    MySQL批量替换数据库字符集的实用方法(附详细代码)

    当需要修改数据库编码和字符集时,通常需要对其下属的所有表及表中所有字段进行修改,下面这篇文章主要介绍了MySQL批量替换数据库字符集的实用方法,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-09-09
  • Mysql因为字段字符集编码的问题导致索引没生效的解决方案

    Mysql因为字段字符集编码的问题导致索引没生效的解决方案

    通过分析MySQL的EXPLAIN结果,发现复合索引只使用了部分字段,原因是字符集不一致导致的,修改字符集为utf8mb4_0900_ai_ci后,查询性能显著提升,文章还介绍了MySQL字符集的演进以及如何统一数据库字符集
    2025-12-12

最新评论