mysql异常占用资源排查

 更新时间:2025年07月23日 10:39:59   作者:L-960  
本文详细介绍了通过MySQL的全局变量检查日志状态,监控连接数及启用和调整慢查询记录,以帮助排查数据库性能问题,感兴趣的可以了解一下

通过执行日志与连接信息排查

查看是否开启日志记录

mysql> show global variables like '%general%';
+------------------+---------------+
| Variable_name    | Value         |
+------------------+---------------+
| general_log      | OFF           |
| general_log_file | localhost.log |
+------------------+---------------+
2 rows in set (0.03 sec)

开启sql记录

mysql> set global general_log=on;
Query OK, 0 rows affected (0.00 sec)

查看日志位置观察异常sql

mysql> show global variables like '%general%';
+------------------+---------------+
| Variable_name    | Value         |
+------------------+---------------+
| general_log      | ON            |
| general_log_file | localhost.log |
+------------------+---------------+

查看当前连接数

mysql> SHOW STATUS LIKE 'Threads_connected';
+-------------------+-------+
| Variable_name     | Value |
+-------------------+-------+
| Threads_connected | 2     |
+-------------------+-------+
1 row in set (0.04 sec)

查看哪些客户端连接到了mysql

mysql> SHOW PROCESSLIST;
+-------+-------------+----------------------+------------------+---------+------+--------------------------+------------------+----------+
| Id    | User        | Host                 | db               | Command | Time | State                    | Info             | Progress |
+-------+-------------+----------------------+------------------+---------+------+--------------------------+------------------+----------+
|     1 | system user |                      | NULL             | Daemon  | NULL | InnoDB purge worker      | NULL             |    0.000 |
|     2 | system user |                      | NULL             | Daemon  | NULL | InnoDB purge coordinator | NULL             |    0.000 |
|     3 | system user |                      | NULL             | Daemon  | NULL | InnoDB purge worker      | NULL             |    0.000 |
|     4 | system user |                      | NULL             | Daemon  | NULL | InnoDB purge worker      | NULL             |    0.000 |
|     5 | system user |                      | NULL             | Daemon  | NULL | InnoDB shutdown handler  | NULL             |    0.000 |
| 98821 | root        | 192.168.2.42:53790   | test_cloud       | Sleep   |    2 |                          | NULL             |    0.000 |
| 98824 | root        | 192.168.2.14:64112   | NULL             | Query   |    0 | Init                     | SHOW PROCESSLIST |    0.000 |
+-------+-------------+----------------------+------------------+---------+------+--------------------------+------------------+----------+
7 rows in set (0.05 sec)

通过慢sql信息排查

查看是否开启慢sql记录

mysql> show global variables like '%slow_query_log%';
+---------------------+--------------------+
| Variable_name       | Value              |
+---------------------+--------------------+
| slow_query_log      | OFF                |
| slow_query_log_file | localhost-slow.log |
+---------------------+--------------------+
2 rows in set (0.05 sec)

开启慢sql记录

mysql> set global slow_query_log=1;
Query OK, 0 rows affected (0.00 sec)

mysql> show global variables like '%slow_query_log%';
+---------------------+--------------------+
| Variable_name       | Value              |
+---------------------+--------------------+
| slow_query_log      | ON                 |
| slow_query_log_file | localhost-slow.log |
+---------------------+--------------------+
2 rows in set (0.05 sec)

关闭慢sql记录

mysql> set global slow_query_log=0;
Query OK, 0 rows affected (0.00 sec)

mysql> show global variables like '%slow_query_log%';
+---------------------+--------------------+
| Variable_name       | Value              |
+---------------------+--------------------+
| slow_query_log      | OFF                 |
| slow_query_log_file | localhost-slow.log |
+---------------------+--------------------+
2 rows in set (0.05 sec)

修改slow_launch_time与 long_query_time

  • slow_launch_time:定义一个客户端连接启动所花费的时间阈值。如果一个客户端连接的启动时间超过了这个阈值,MySQL 将认为这是一个慢连接启动,并将其记录到慢查询日志中。

  • long_query_time:定义一个 SQL 查询执行所花费的时间阈值。如果一个 SQL 查询的执行时间超过了这个阈值,MySQL 将认为这是一个慢查询,并将其记录到慢查询日志中。

这两个参数都可以在 MySQL 的配置文件中进行设置,通常在 my.cnf 或 my.ini 文件中定义。例如:

slow_launch_time = 2
long_query_time = 1

也可以通过sql进行查看和修改:

查看慢连接判定时间:

mysql> show variables like 'slow_launch_time%';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| slow_launch_time | 2     |
+------------------+-------+
1 row in set (0.04 sec)

修改慢连接判定时间:

mysql> set global slow_launch_time=3;
Query OK, 0 rows affected (0.00 sec)

mysql> show variables like 'slow_launch_time%';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| slow_launch_time | 3     |
+------------------+-------+
1 row in set (0.04 sec)

查看慢sql判定时间

mysql> show variables like 'long_query_time%';
+-----------------+-----------+
| Variable_name   | Value     |
+-----------------+-----------+
| long_query_time | 10.000000 |
+-----------------+-----------+
1 row in set (0.05 sec)

修改慢sql判定时间

mysql> set long_query_time=3;
Query OK, 0 rows affected (0.00 sec)

mysql> show variables like 'long_query_time%';
+-----------------+----------+
| Variable_name   | Value    |
+-----------------+----------+
| long_query_time | 3.000000 |
+-----------------+----------+
1 row in set (0.04 sec)

到此这篇关于mysql异常占用资源排查的文章就介绍到这了,更多相关mysql异常占用资源排查内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

  • Mysql中关于0值判断的坑及解决

    Mysql中关于0值判断的坑及解决

    这篇文章主要介绍了Mysql中关于0值判断的坑及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • MySQL日期格式以及日期函数举例详解

    MySQL日期格式以及日期函数举例详解

    这篇文章主要给大家介绍了关于MySQL日期格式及日期函数的相关资料,日期在数据库中是一个常见且重要的数据类型,在MySQL中我们可以使用各种函数和格式化选项来处理和显示日期,需要的朋友可以参考下
    2023-11-11
  • linux mysql5.6版本的安装配置过程

    linux mysql5.6版本的安装配置过程

    mysql官网开始发布相关的5.6系列的各个版本,对于mysql5.6系列的版本对一起的版本进行了全局性的细节性加强
    2013-06-06
  • MySQL 备份失败的问题:undo log 清理耗时10 小时的问题解决

    MySQL 备份失败的问题:undo log 清理耗时10 小时的问题解决

    本文将结合实际案例,剖析MySQL 8.0.18 环境下,因undo log清理耗时过长导致全备失败的故障成因与解决路径,并探讨智能工具在数据库故障诊断中的应用价值,感兴趣的朋友一起看看吧
    2025-06-06
  • MySQL InnoDB 存储引擎的底层逻辑架构

    MySQL InnoDB 存储引擎的底层逻辑架构

    这篇文章主要为大家介绍了MySQL InnoDB 存储引擎的底层逻辑架构详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • MySql如何查看数据库变量信息常用脚本

    MySql如何查看数据库变量信息常用脚本

    这篇文章主要介绍了MySql如何查看数据库变量信息常用脚本问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-04-04
  • MySQL数据库增删改查超完整示例图(新手入门必看)

    MySQL数据库增删改查超完整示例图(新手入门必看)

    MySQL中的增删改查操作是实现数据库数据管理的重要手段,通过对数据库中数据的增加、删除、修改和查询,我们可以对数据进行有效的管理和利用,这篇文章主要介绍了MySQL数据库增删改查的相关资料,需要的朋友可以参考下
    2026-04-04
  • mysql binlog常用命令详解

    mysql binlog常用命令详解

    本文介绍了如何使用mysqlbinlog工具查看和操作MySQL的binlog日志,包括启用、查看、清理等功能,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2025-11-11
  • 解压版MYSQL安装及遇到的错误及解决方法

    解压版MYSQL安装及遇到的错误及解决方法

    这篇文章主要介绍了解压版MYSQL安装及遇到的错误及解决方法,需要的朋友可以参考下
    2018-11-11
  • MySQL跨服务器数据映射的实现

    MySQL跨服务器数据映射的实现

    本文主要介绍了MySQL跨服务器数据映射的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03

最新评论