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 查看事务和锁情况的常用语句分享

    MySQL 查看事务和锁情况的常用语句分享

    这篇文章主要介绍了MySQL 查看事务和锁情况的常用语句分享,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • 对MySQL日志操作的一些基本命令总结

    对MySQL日志操作的一些基本命令总结

    这篇文章主要介绍了对MySQL日志操作的一些基本命令总结,其中重点讲述了二进制日志文件的相关方面,需要的朋友可以参考下
    2015-11-11
  • 关于MySQL绕过授予information_schema中对象时报ERROR 1044(4200)错误

    关于MySQL绕过授予information_schema中对象时报ERROR 1044(4200)错误

    这篇文章主要介绍了关于MySQL绕过授予information_schema中对象时报ERROR 1044(4200)错误,本文给大家分享解决方法,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • MySQL之表连接方式(内连接与外连接)

    MySQL之表连接方式(内连接与外连接)

    这篇文章主要介绍了MySQL之表连接方式(内连接与外连接),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04
  • MySQL表的增删改查基础教程

    MySQL表的增删改查基础教程

    这篇文章主要给大家介绍了关于MySQL表的增删改查的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • Mysql报Table 'mysql.user' doesn't exist问题的解决方法

    Mysql报Table 'mysql.user' doesn't exist问题的解

    这篇文章主要给大家介绍了关于Mysql报Table 'mysql.user' doesn't exist问题的解决方法,初学者可能会遇到这个问题,文中通过图文将解决方法介绍的非常详细,需要的朋友可以参考下
    2022-05-05
  • SQL语句解析执行的过程及原理

    SQL语句解析执行的过程及原理

    这篇文章主要介绍了SQL语句解析执行的过程及原理,文章主要通过获得SqlSession对象后就能执行各种CRUD方法展开全文内容需要的小伙伴可以参考一下,希望对你有所帮助
    2022-03-03
  • mysql常用函数汇总(分享)

    mysql常用函数汇总(分享)

    以下是对mysql中的常用函数进行了汇总介绍。需要的朋友可以过来参考下
    2013-08-08
  • MySQL中slave_exec_mode参数详解

    MySQL中slave_exec_mode参数详解

    本篇文章主要给大家讲述了MySQL中slave_exec_mode参数的用法以及示例分析了出现的错误问题和解决办法,需要的朋友参考学习下吧。
    2017-12-12
  • MySql 查询符合条件的最新数据行

    MySql 查询符合条件的最新数据行

    这篇文章主要介绍了MySql 怎么查出符合条件的最新的数据行,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07

最新评论