慢查询分析日最初是用来捕获比较“慢”的查询,在mysql5.1 + 版本中,慢查询的功能被增强,能够经过设置long_query_time为0来捕获全部的查询,并且查询的响应时间已经能够作到微妙级别。mysql
---在MySQL的当前版本中,慢查询日志是开销最低,精确度最高的测量查询时间的工具。若是还在担忧开启慢查询会带来额外的I/O开销,那大能够放心,咱们在I/O密集型场景作过测试,慢查询带来的开销能够忽略不计(实际上CPU密集型场景的影响还稍大一些)sql
更须要担忧的是日志可能会消耗掉很大的磁盘空间,所以,不要长时间开启满日志查询 [高性能MySQL]工具
下面咱们采用慢查询日志查询语句的执行效率性能
1、执行 show variables like '%quer%'; 查询是否已经开启了慢查询测试
能够发现 binlog_rows_query_log_events 的状态为OFF,代表尚未打开日志功能ui
打开慢日志功能有两种方式,命令行
(1.1) 在启动时直接打开:3d
在default-ini中添加以下信息:rest
[mysqld]日志
log-slow-queries=" D:\softpackage\mysql\data\cuiyw-slow.log" --查询日志的输出目录
long_query_time = 4 --查询日志的阈值
log-queries-not-using-indexes --将没有索引的日志输出
(1.2)使用命令临时打开:
use databasename;
set global slow_query_log = 1;
set global long_query_time = 1;
set global log_output = 'FILE';
set global general_log = 1;
set long_query_time = 1;
我采用的是第二种方式,执行完后,执行show variables like '%quer%',肯定是否启动成功:
发现参数值变为了on,代表启动成功。咱们查看一下data目录下的文件
2、slow_query_log
log_slow_queries实际上已经再也不使用了,目前MySQL5.6版本的参数是slow_query_log,参数含义以下:
(2.1)、命令行参数:
--log-slow-queries
指定日志文件存放位置,能够为空,系统会给一个缺省的文件host_name-slow.log
(2.2)、系统变量
log_slow_queries
指定日志文件存放位置,能够为空,系统会给一个缺省的文件host_name-slow.log
slow_query_log
slow quere log的开关,当值为1的时候说明开启慢查询。
slow_query_log_file
指定日志文件存放位置,能够为空,系统会给一个缺省的文件host_name-slow.log
long_query_time
记录超过的时间,默认为10s
log_queries_not_using_indexes
log下来没有使用索引的query,能够根据状况决定是否开启
3、从新启动MySQL(从新记录一下MySQL启动和关闭的方法)
(3.1)、启动方式一、使用 service 启动:service mysqld start二、使用 mysqld 脚本启动:/etc/inint.d/mysqld start三、使用 safe_mysqld 启动:safe_mysqld&(3.2)、中止一、使用 service 启动:service mysqld stop二、使用 mysqld 脚本启动:/etc/inint.d/mysqld stop三、mysqladmin shutdown(3.3)、重启一、使用 service 启动:service mysqld restart二、使用 mysqld 脚本启动:/etc/inint.d/mysqld restart