您的位置:首页 > 数据库 > MySQL

mysql 5.6 打开慢查询

2015-11-05 16:51 609 查看
mysql版本5.6:

一、慢查询日志演示

long_query_time    :  设定慢查询的阀值,超出次设定值的SQL即被记录到慢查询日志,缺省值为10s

slow_query_log      :  指定是否开启慢查询日志

log_slow_queries    :  指定是否开启慢查询日志(该参数要被slow_query_log取代,做兼容性保留)

slow_query_log_file :  指定慢日志文件存放位置,可以为空,系统会给一个缺省的文件host_name-slow.log

min_examined_row_limit:查询检查返回少于该参数指定行的SQL不被记录到慢查询日志

log_queries_not_using_indexes: 不使用索引的慢查询日志是否记录到索引

[root@mysql_multi ~]# vi /etc/my.cnf
【mysqld3307】
long_query_time=1
#slow_query_log
slow_query_log=1
#slow_query_log_file=var/lib/mysql/slow-query.log
#以前版本的参数格式跟5.6的不一致
slow_query_log_file=var/lib/mysql/slow-query.log
#将所有没有使用带索引的查询语句全部写到慢查询日志中
log_queries_not_using_indexes=1 

修改完配置文件后,记得保存重启mysql服务.

可以在mysql里直接开启慢查询:

mysql>set global slow_query_log='ON';

查询慢查询是否开启:

mysql> show variables like "slow_query_log";

+----------------+-------+

| Variable_name  | Value |

+----------------+-------+

| slow_query_log | ON    |

+----------------+-------+

1 row in set (0.00 sec)

root@localhost : mysql 01:00:16> show variables like '%slow%';
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id:    2
Current database: mysql

+---------------------------+----------------------------------------------+
| Variable_name             | Value                                        |
+---------------------------+----------------------------------------------+
| log_slow_admin_statements | OFF                                          |
| log_slow_slave_statements | OFF                                          |
| slow_launch_time          | 2                                            |
| slow_query_log            | ON                                           |
| slow_query_log_file       | /data/mysql/mysqldata3307/log/slow-query.log |
+---------------------------+----------------------------------------------+
5 rows in set (0.00 sec)

root@localhost : mysql 01:03:44> show variables like '%index%';
+----------------------------------------+-------+
| Variable_name                          | Value |
+----------------------------------------+-------+
| eq_range_index_dive_limit              | 10    |
| innodb_adaptive_hash_index             | ON    |
| innodb_cmp_per_index_enabled           | OFF   |
| log_bin_index                          |       |
| log_queries_not_using_indexes          | ON    |
| log_throttle_queries_not_using_indexes | 0     |
| relay_log_index                        |       |
+----------------------------------------+-------+
7 rows in set (0.00 sec)

然后运行一个需要长时间才能执行完毕的sql,使用mysqldumpslow 查看日志:
var/lib/mysql/slow-query.log (直接使用cat 进行查看也可以)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: