0. 什么是慢查询日志?
即使用于记录查询较慢的 sql,标准是运行时间超过 long_query_time(默认是10s) 的 sql。
mysql 默认没有开启慢查询日志,一般不是调优需求,不建议开启该功能,因为会影响性能。
一、相关命令
查询是否开启了慢查询日志:
show varibles like '%slow_query_log%';
开启慢查询日志:
#只对当前数据库生效,my.cnf 中配置可才永久生效。
set global slow_query_log=1;
查询 long_query_time:
#默认是大于10s,不包括10
show varibles like '%long_query_time%'
设置阈值:
#需要重新连接或新会话生效
set global long_query_time=3;
获取慢查询次数:
show varibles like 'slow_queries';
命令行操作不持久,若要持久检测(一般不会,因为消耗性能),需要在配置文件的 mysqld 中增加配置
slow_query_log=1
#如没有指定文件名,则默认【主机名-slow.log】
slow_query_log_file=/var/example/slow_query.log
#默认超过10s(不包括等于)算慢查询
long_query_time=10
二、分析工具 mysqldumpslow
一个简化慢查询分析的工具
基本范例:
范例
网友评论