咨询热线:4006-75-4006
售前:9:00-23:30 备案:9:00-18:00 技术:7*24h
蓝队云小课堂:
MySQL 的慢查询日志 (slow_query_log) 是一个非常有用的工具,它可以帮助你识别出执行时间过长的 SQL 语句。这些慢查询可能会导致性能瓶颈,并且通过分析这些日志,你可以找出优化的方向。
以下是开启慢查询日志和使用它的基本步骤:
开启慢查询日志
方法一:通过配置文件
1.打开 MySQL 的配置文件 my.cnf 或 my.ini。通常这些文件位于 /etc/mysql/my.cnf (Linux) 或 C:\\ProgramData\\MySQL\\MySQL Server 8.0\\my.ini (Windows)。
2.在 [mysqld] 部分添加以下行:
slow_query_log = ON
slow_query_log_file = /path/to/slow-query.log
long_query_time = 2
slow_query_log: 设置为 ON 表示启用慢查询日志。
slow_query_log_file: 指定慢查询日志文件的路径。
long_query_time: 设置 SQL 语句的最小执行时间(秒),超过这个时间的查询会被记录到日志中。
3.保存文件并重启 MySQL 服务使配置生效:
sudo systemctl restart mysql
方法二:动态设置
1.登录 MySQL:
mysql -u root -p
2.动态设置慢查询日志:
SET GLOBAL slow_query_log = ON;
SET GLOBAL slow_query_log_file = '/path/to/slow-query.log';
SET GLOBAL long_query_time = 2;
分析慢查询日志
使用 mysqldumpslow
mysqldumpslow 是一个命令行工具,可以用来解析慢查询日志文件并统计查询的出现次数和总执行时间。
1.安装 mysqldumpslow (如果还没有安装的话):
sudo apt-get install mysql-tools
或者对于其他包管理器,查找相应的命令。
2.使用 mysqldumpslow 分析慢查询日志:
mysqldumpslow --count=10 /path/to/slow-query.log
这个命令会显示出现频率最高的 10 个慢查询。
使用 MySQL 内置函数
从 MySQL 5.6 开始,慢查询日志可以被记录到表中,这使得分析慢查询更加方便。
1.启用慢查询日志到表:
SET GLOBAL slow_query_log = ON;
SET GLOBAL slow_query_log_file = '';
SET GLOBAL log_output = 'TABLE';
2.查看慢查询记录:
SELECT * FROM mysql.slow_log;
关闭慢查询日志
当你不再需要慢查询日志时,可以关闭它:
SET GLOBAL slow_query_log = OFF;
注意事项
记录慢查询日志可能会对性能产生一定影响,因此建议在生产环境中谨慎使用。
调整 long_query_time 参数以适应不同的需求。
请确保有足够的磁盘空间来存储慢查询日志文件。
如果你使用的是 MySQL 8.0 或更高版本,可以参考官方文档获取更详细的信息:https://www.landui.com/doc/refman/8.0/en/slow-query-log.html
更多小知识,可联系蓝队云一起探讨。