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
分类:
MySQL
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 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 加持,客户体验更智能