首先,大家应该开启MySQL慢查询日志。具体的操作步骤如下: 1. 在my.cnf配置文件中添加以下内容: slow_query_log = ON //开启慢日志记录 slow_query_log_file = /usr/local/mysql/data/slow.log //指定存放慢日志的文件路径 long_query_time = 5 //设置慢查询的时间阈值 2. 重启MySQL服务,使配置文件生效。 3. 查看慢查询日志: mysql>show variables like '%slow%'; +---------------------+--------------------------------------+ | Variable_name | Value | +---------------------+--------------------------------------+ | slow_query_log | ON | | slow_query_log_file | /usr/local/mysql/data/slow.log | | long_query_time | 5.000000 | +---------------------+--------------------------------------+
除了开启慢查询日志外,大家还可以使用pt-query-digest工具来分析慢查询日志,找出最耗时的SQL语句。
1. 安装percona-toolkit: sudo apt-get install percona-toolkit 2. 分析慢查询日志: pt-query-digest /usr/local/mysql/data/slow.log >slow_query_report.txt 3. 打开分析结果: vim slow_query_report.txt
最后,大家需要对慢查询日志进行定期清理,以防止磁盘空间占满。可以设置一个定时任务来定期清理。
1. 创建清理脚本: sudo vim /usr/local/mysql/clean_slow_log.sh #!/bin/bash find /usr/local/mysql/data/ -mtime +7 -name "*.log" -exec rm -rf {} \; 2. 给脚本添加执行权限: sudo chmod +x /usr/local/mysql/clean_slow_log.sh 3. 创建定时任务: sudo crontab -e 0 2 * * * sh /usr/local/mysql/clean_slow_log.sh >/dev/null 2>&1
在建立完善的MySQL慢日志体系后,大家就可以更好地发现和解决慢查询问题,提升系统的性能。