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 进行查看也可以)
一、慢查询日志演示
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 进行查看也可以)
相关文章推荐
- 2003——can't connect to mysql server on '***'(10061)
- MySQL 备份脚本
- 二、安装配置MYSQL5.6多实例-共享配置文件方法
- mysql 触发器
- mysql 优化
- mysql字符集以及访问权限
- mysql 加外键约束
- mysql类
- MYSQL数据库备份与恢复
- MySQL error log配置及管理
- 如何在MySQL中设置外键约束以及外键的作用
- MySQL JDBC驱动 - 01 - Class.forName
- MySQL 5.6 Threadpool(优先队列)介绍及性能测试【转】
- mysql 添加用户 可以远程访问
- Mysql自增异常
- MYSQL my_print_defaults程序解析
- mysql外链接查询
- mysql 重置 root 密码
- mysql 二进制日志恢复
- mysql 历史数据表迁移方案