初衷
抽空整理一下Mysql 慢SQL的配置和分析。
资料
使用
(直译)慢查询日志由SQL语句组成,这些SQL语句执行时间超过long_query_time秒,并且至少需要检查min_examined_row_limit行。long_query_time的最小值和默认值分别为0和10。该值可以指定为微秒的分辨率。对于记录到文件,写入包括微秒部分的时间。对于记录到表,只写入整数倍;
配置方式
一、通过修改/etc/my.cnf
,添加配置
优点:全局生效
缺点:需要重启Mysql
二、通过SQL命令set global slow_query_log=1
直接修改环境变量
优点:立即生效
缺点:只对当前数据库生效,重启Mysql后失效
配置参数
slow_query_log
是否启用日志。如果参数为0则禁用日志,为1则启用日志。
slow-query-log-file
日志文件指定。(可输出到文件或者数据库详见官网文档)
long_query_time
执行时间超过几秒的SQL语句,最小值和默认值分别为0和10。
范例 my.cnf 配置
#my.cnf文件
#是否开启慢查询日志,1表示开启,0表示关闭。
slow-query-log = 1
#MySQL数据库慢查询日志存储路径
slow-query-log-file = /var/lib/mysql/mysql-slow.log
#慢查询阈值,当查询时间多于设定的阈值时,记录日志。单位:秒
long_query_time = 10
范例 show variables 配置
mysql> show variables like '%slow_query_log%';
+---------------------+---------------------------------------------------------+
| Variable_name | Value |
+---------------------+---------------------------------------------------------+
| slow_query_log | OFF |
| slow_query_log_file | /usr/local/mysql/data/xxx-xxx-slow.log |
+---------------------+---------------------------------------------------------+
mysql> set global slow_query_log=1;
网友评论