查询是否开启慢SQL日志
show variables like '%slow_query_log';
开启慢查询日志
set global slow_query_log='ON';
可以通过修改MySQL的配置my.cfg
或者my.ini
永久生效
slow_query_log=ON # 开启慢查询日志开关
slow_query_log_file=/var/lib/mysql/alvin-slow.log # 慢查询日志的目录和文件名信息 long_query_time=3 # 设置慢查询的阈值为3秒,超出此设定值的SQL即被记录到慢查询日志 log_output=FILE
查看慢查询日志位置
show variables like '%slow_query_log_file%'
修改慢查询日志位置
set global slow_query_log_file = '/usr/local/mysql/data/alvin-slow-slow.log';
查询当前系统中有多少条慢查询记录
SHOW GLOBAL STATUS LIKE '%Slow_queries%';
mysqldumpslow
命令的具体参数如下:
- -a: 不将数字抽象成N,字符串抽象成S
- -s: 是表示按照何种方式排序:
- c: 访问次数
- l: 锁定时间
- r: 返回记录
- t: 查询时间
- al:平均锁定时间
- ar:平均返回记录数
- at:平均查询时间 (默认方式)
- ac:平均查询次数
- -t: 即为返回前面多少条的数据;
- -g: 后边搭配一个正则匹配模式,大小写不敏感的;
Ps:
Query_time:实际执行的时间,Lock_time:如果加了锁的话,等到锁所消耗的时间,Row_sent:拿到了多少条数据, Rows_examined:为了得到想要的结果操作了多少条数据。