linux下:
一.在mysql中查询是否开启了慢查询
mysql>SHOW VARIABLES LIKE '%slow%';
Variable_name Value
log_slow_queries OFF
表示未开启
//查看慢查询时间
show variables like "long_query_time";
//查看慢查询配置情况
show status like "%slow_queries%";
//查看慢查询日志路径
show variables like "%slow%";
注解:
slow_launch_time的设定跟慢查询日志的查询阀值设定不同,表示了thread create的一个阀值,如果thread create的时间超过了这个值,这变量slow_launch_time的值加1.
而设置Long_query_time表示超过多少秒的查询就写入日志,默认的是10s,设置为0的话表示记录所有的查询。在Mysql 5.5可以追踪到微秒的查询。
二.配置
1.my.cnf配置
在my.cnf中的[mysqld]中添加如下语句:
#slow query
log-slow-queries=/data/var/log/mysql/mysql_slow_query.log
long_query_time=1
以上标示慢查询存放位置,将查询需要多少秒的sql语句记录.long_query_time如果为0,将记录所有查询
重启mysql
2.在mysql中配置,不重启mysql配置(该配置重启mysql将丢失)
mysql>show variables like ”%long%”; //查看一下默认为慢查询的时间10秒
mysql> show variables like ”%long%”; //查看一下慢查询是不是已经开启
mysql> set global long_query_time=2; //设置成2秒,加上global,下次进mysql已然生效
mysql> show variables like ”%slow%”; //查看一下慢查询是不是已经开启
mysql> set global slow_query_log=’ON’; //启用慢查询
mysql> show variables like ”%slow%”; //查看是否已经开启