当前位置: 代码网 > it编程>数据库>Mysql > mysql异常占用资源排查

mysql异常占用资源排查

2025年07月23日 Mysql 我要评论
通过执行日志与连接信息排查查看是否开启日志记录mysql> show global variables like '%general%';+------------------+--------

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

查看是否开启日志记录

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异常占用资源排查内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网! 

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com