使用以下语句可以查询相关的配置和日志所在位置:
show variables like '%slow%';
名词解释:
log_slow_admin_statements: 打开后可以将一些比较慢的管理语句,如optimize table,analyze table,alter table 等操作写入到慢查询语句。
log_slow_slave_statements: 可以将一些复制查询的语句写入到慢查询log中
slow_launch_time: 判定thread create是否超过阈值,超过这个值得语句将会被写入到log中。
slow_query_log:是否写慢查询log的开关
slow_query_log_file:慢查询日志所在的相对路径,默认在数据库的管理目录下,windows在C:ProgramDataMySQLMySQL Server 5.7Data下。
可以使用这个语句,实时的查询当前的慢查询语句:
show global status like '%slow%';
显示累计到当前的所有慢查询的数目。
使用以下语句,查询当前慢查询的SQL语句的阈值:
show variables like '%long_query_time%';
long_query_time: 当查询语句超过这个阈值,将会把SQL语句记录到慢日志里。
我们可以使用一些命令动态去启动,关闭和更改这些设置这一设置
SET GLOBAL slow_query_log =’ON’|’OFF’;
SET GLOBAL long_query_time = 3;
也可以去配置文件下进行手工配置,打开默认的配置文件my.cnf或者my.ini:
log-output=FILE
general-log=0
general_log_file="WIN-GSQ7DOK3HEL.log"
slow-query-log=1
slow_query_log_file="WIN-GSQ7DOK3HEL-slow.log"
long_query_time=5
slow_launch_time =3
重启MySQL服务,可以看到相应的参数以全局的形式被修改。
我们可以打开对应目录下的*************-slow.log 可以看一些执行比较慢的语句:
Notepad看到的日志可读性较差,可以使用notepad++等工具来查看,效果会比较好:
当然我们也可以使用Mysql自带的工具来查看日志,可以快速的提取我们需要的重要信息:
mysqldumpslow -r -t 2 日志目录-slow.log
注意:如果没有perl环境需要首先安装perl环境,并在perl的bin目录下执行以下命令:
Perl mysqldumpslow.pl的路径 + mysqldumpslow -r -t 2 -a 日志目录-slow.log
命令会展示出,系统中最慢的两条语句并按照升序排列。