MySQL数据库中慢查询日志的开启、设置和抓取

1、登录MySQL服务器,查看慢查询日志是否开启

命令:

mysql> show variables like '%slow_query_log%';
+---------------------+------------------------------+
| Variable_name       | Value                        |
+---------------------+------------------------------+
| slow_query_log      | OFF                          |
| slow_query_log_file | /var/lib/mysql/peng-slow.log |
+---------------------+------------------------------+
2 rows in set (0.00 sec)

2、开启慢查询日志

命令:

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

mysql> show variables like '%slow_query_log%';
+---------------------+------------------------------+
| Variable_name       | Value                        |
+---------------------+------------------------------+
| slow_query_log      | ON                           |
| slow_query_log_file | /var/lib/mysql/peng-slow.log |
+---------------------+------------------------------+
2 rows in set (0.00 sec)
复制代码

3、查看慢查询日志中的最大忍耐时间(默认:10s)

命令:

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

4、设置慢查询日志中的最大忍耐时间

命令:

复制代码
mysql> set global 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 | 10.000000 |
+-----------------+-----------+
1 row in set (0.00 sec)
mysql> show global variables like '%long_query_time%';
+-----------------+----------+
| Variable_name   | Value    |
+-----------------+----------+
| long_query_time | 3.000000 |
+-----------------+----------+
1 row in set (0.00 sec)

------------------------------------------------
新窗口,效果如下
mysql> show variables like '%long_query_time%';
+-----------------+----------+
| Variable_name   | Value    |
+-----------------+----------+
| long_query_time | 3.000000 |
+-----------------+----------+
1 row in set (0.00 sec)
复制代码

如果设置完成之后,仍然在当前窗口查看的话,想要看到设置之后的效果

方式一:当前窗口下输入命令,在 show variables like '%long_query_time%’ 命令的show后面加上 global。

方式二:新起一个窗口(即会话),直接输入show variables like '%long_query_time%‘这个命令即可。

5、用下面一个睡眠命令来模拟实际应用场景中的慢SQL语句执行

命令:

mysql> select sleep(4);
+----------+
| sleep(4) |
+----------+
|        0 |
+----------+
1 row in set (4.00 sec)

6、查看慢查询日志文件

命令:

复制代码
[root@peng mysql]# cat -n peng-slow.log
     1    /usr/sbin/mysqld, Version: 5.5.48-log (MySQL Community Server (GPL)). started with:
     2    Tcp port: 3306  Unix socket: /var/lib/mysql/mysql.sock
     3    Time                 Id Command    Argument
     4    # Time: 210630 19:30:45
     5    # User@Host: root[root] @ localhost []
     6    # Query_time: 4.000641  Lock_time: 0.000000 Rows_sent: 1  Rows_examined: 0
     7    SET timestamp=1625052645;
     8    select sleep(4);
     9    /usr/sbin/mysqld, Version: 5.5.48-log (MySQL Community Server (GPL)). started with:
    10    Tcp port: 3306  Unix socket: /var/lib/mysql/mysql.sock
    11    Time                 Id Command    Argument
复制代码
posted @   没有你哪有我  阅读(376)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
点击右上角即可分享
微信分享提示