方法一:全局变量设置
将 slow_query_log 全局变量设置为“ON”状态
mysql> set global slow_query_log='ON';
设置慢查询日志存放的位置
mysql> set global slow_query_log_file='/usr/local/mysql/data/slow.log';
查询超过1秒就记录
mysql> set global long_query_time=1;
方法二:配置文件设置
修改配置文件my.cnf,在[mysqld]下的下方加入
[mysqld] slow_query_log = ON slow_query_log_file = /usr/local/mysql/data/slow.log long_query_time = 1
运行 MySQL 时,查询速度比较慢的语句对数据库的影响非常大,这些慢语句大多是写的不够合理或者大数据环境下多表并发查询造成的。MySQL 自带慢查询功能,能记录查询时间超过参数 long_query_time
的值的语句,用于定位执行慢的 SQL 语句。您可以优化慢查询语句从而优化 MySQL。
远程连接 并登录到 Linux 实例。
执行命令 ls
查找 MySQL 配置文件,通常为 my.ini。
执行命令 find $PWD -type f | grep "您查到的 MySQL 配置文件"
查找文件路径。
执行命令 cd 您查找到的文件路径
。
进入 MySQL 执行命令 show variables like "%long%";
查看慢查询的默认时间。
执行命令 vi 您查到的 MySQL 配置文件
,按 i 进入编辑模式,在 [mysqld] 小节处粘贴并复制以下内容,然后按 Esc 退出编辑模式,输入 :wq
保存退出。
log-slow-queries = /var/lib/mysql/mysql-slow.log #表示慢查询的日志存储目录。此目录文件一定要有写权限。
long_query_time = 2 #MySQL 将记录下所有执行时间超过 2 条的 SQL 语句。
进入 MySQL 执行命令 set global slow_query_log='ON';
启用慢查询。
进入 MySQL 执行命令 show variables like "%slow%";
查看是否已开启慢查询,如果 log_slow_queries 状态为 ON,则表示已经开启慢查询。
执行命令 service mysql restart
重新启动 MySQL 服务。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。