mysql开启慢查询日志

mysql> show variables like 'slow_query%';
mysql> show variables like 'long_query_time';

slow_query_log 慢查询开启状态

slow_query_log_file 慢查询日志存放的位置(默认为MySQL的数据存放目录)
long_query_time 查询超过多少秒才记录

设置方法1:全局配置

mysql> set global slow_query_log='ON'; 
mysql> set global slow_query_log_file = '/home/mysql/sql_log/mysql-slow.log';
#超过1秒就记录
mysql> set global long_query_time=1;

设置方法2:修改my.cnf配置文件

vi /etc/my.cnf

配置:

[mysqld]
slow_query_log = ON
slow_query_log_file = /home/mysql/sql_log/mysql-slow.log
long_query_time = 1

slow_query_log_file所在的目录需要MySQL的运行帐号的可写权限,如需变更日志文件目录记得给新目录授予777权限,否则slow_query_log一直为OFF

touch /home/mysql/sql_log/mysql-slow.log
chmod 777 -R /home/mysql/sql_log

测试

mysql> select sleep(2);

查看

cat /home/mysql/sql_log/mysql-slow.log

慢查询分析工具:

Mysqldumpslow:mysql自带 
pt-query-digest:功能更多更强大