前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Mysql数据库占用CPU高的解决方案

Mysql数据库占用CPU高的解决方案

原创
作者头像
参谋带个长
发布2022-04-28 19:22:22
3.3K0
发布2022-04-28 19:22:22
举报

问题表现

服务器系统负载高,CPU长时间接近100%,通过top命令查看得知mysqld占用极高,问题锁定mysql。通常是由于SQL语句优化不到位造成的。

可以通过以下两种方法进行排查和解决

1、通过使用开启并查看慢查询日志解决问题。

2、通过使用show processlist;命令解决问题。

方法一、通过使用开启并查看慢查询日志解决问题

1、登录mysql

代码语言:javascript
复制
mysql -u root -p

然后输入密码,即可登录mysql,从而在提示符下输入命令

2、查看慢查询SQL是否启用

代码语言:javascript
复制
show variables like 'log_slow_queries';

如果结果为ON则是开启了,如果为OFF则表示禁用了。

3、开启慢查询命令

代码语言:javascript
复制
set global log_slow_queries = on;

因开启后当出现慢SQL后会自动记录在日志中,故而日志文件会越来越大,故建议非调试时关闭此功能。

4、查看慢查询存放日志

代码语言:javascript
复制
show variables like 'slow_query_log_file';

显示日志存在位置,即可去相应目录下查看。

方法二、通过使用show processlist;命令解决问题

1、登录mysql

代码语言:javascript
复制
mysql -u root -p

然后输入密码,即可登录mysql,从而在提示符下输入命令

2、输入show processlist;命令

show processlist;命令可以查看当前正在执行的线程

代码语言:javascript
复制
show processlist;

命令返回的具体参数比较多,具体含义请自行百度。这里主要注意state字段中如果包含大量的Sending data、Waiting for tabls、或各种lock(锁),大概率就是因为这些SQL造成的数据库拥堵

解决办法自然是优化对应的SQL,如希望更进一步,则需要开启查看慢查询日志。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问题表现
  • 方法一、通过使用开启并查看慢查询日志解决问题
    • 1、登录mysql
      • 2、查看慢查询SQL是否启用
        • 3、开启慢查询命令
          • 4、查看慢查询存放日志
          • 方法二、通过使用show processlist;命令解决问题
            • 1、登录mysql
              • 2、输入show processlist;命令
              相关产品与服务
              云数据库 SQL Server
              腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档