slow_query_log
慢查询日志:当查询超过一定的时间没有返回结果的时候,才会记录到慢查询日志中。默认不开启。采样的时候手工开启。可以帮助DBA找出执行慢的SQL语句
常用的参数
slow_query_log=off|on #是否开启慢查询日志
slow_query_log_file=filename #指定保存路径及文件名,默认为数据文件目录
long_query_time=1 #指定返回查询的结果的时间超过多少秒为慢查询
long-queries-not-using-indexes #记录所有没有使用到索引的查询语句
min_examined_row_limit=1000 #记录那些由于查找了多余1000次而引发的慢查询
long-slow-admin-statements #记录记录执行缓慢的SQL语句
log-slow-Slave-statements #记录由Slave所产生的慢查询
注:这些参数可以写入my.cnf配置文件中并重启数据库,也可以使用set命令在线修改
启用慢查询
set global slow_query_log=1;
set long_query_time=1;
select sleep(3); #执行多个慢查询
慢查询日志分析
慢查询日志是文本文件,可以使用mysqldumpslow命令对日志文件进行汇总处理,以减轻分析日志的工作量
mysqldumpslow -s t server3-slow.log #按时间顺序查看
还可以使用percona-toolkit中的pt-query-digest查看分析
此方法查看的结果更加详细
yum install -y percona-toolkit-2.2.20-1.noarch.rpm