展开全部
慢查询日志的开启有两种方式:e69da5e6ba903231313335323631343130323136353331333361313865
一个是配置文件 一个是命令
如果是配置文件方式 就在 mysql 配置文件 my.cnf 中增加:
log-slow-queries=/opt/data/slowquery.log
(这句是指定日志文件存放位置 如果不写 系统会给一个缺省的位置)
long_query_time=2 (记录超过的时间 默认为 10s)
如果是命令行方式 就在 mysql 命令行下面 输入如下命令:
set global slow_query_log=on;
set global long_query_time=1;
# 设置记录查询超过多长时间的 sql
set global slow_query_log_file=‘/opt/data/slow_query.log’;
# 指定日志文件存放位置 如果不写 系统会给一个缺省的位置
这种方式不用重启 mysql 服务
开启了慢查询日志之后 就可以通过以下语句分析:
• mysqldumpslow -s t -t 20 -g 'select' /opt/data/slowquery.log
这句就可以找到执行时间最长的前 20 条查询语句
• mysqldumpslow -s t -t 10 -g 'left join'/opt/data/slowquery_2016050921.log
这句就可以找到执行时间最长的前 10 条含有左连接的查询语句
找到之后 使用如下语句进行进一步分析:
mysql> explain select * from students where id in (2,3);
explain 后面跟上刚刚查出来的执行时间长的语句就可以了