MySQL慢日志

1、MySQL慢日志概要说明

慢查询日志由执行时间超过 long_query_time参数配置且大于 min_examined_row_limit参数设置的 SQL 语句组成,慢查询日志可用于查找执行时间较长且因此适合优化的查询。然而,检查执行时间较长的查询日志也是一项耗时的任务;为了使检查慢 sql更容易,可以使用 mysqldumpslow命令或者 pt_query_digest 工具来处理慢查询日志文件获取汇总后的慢 sql 信息。

慢 sql 记录中sql 执行获取初始锁的时间不计入执行时间,mysqld在执行完并且释放所有锁后将一条语句写入慢查询日志,因此日志顺序可能与执行顺序不同。

2、MySQL慢日志控制参数

默认情况下,慢查询日志slow_query_log参数是关闭的,即参数配置为 0;开启慢日志:slow_query_log=1,开启后使用slow_query_log_file指定慢日志文件的路径:slow_query_log_file=file_namelog_output。

开启后,慢日志记录阈值由参数long_query_time 参数控制,该参数最小值为 0,默认值为 10s,参数可以指定到微秒级别。

mysql> show variables like '%long_query_time%'; +-----------------+----------+ | Variable_name | Value | +-----------------+----------+ | long_query_time | 0.000005 | +-----------------+----------+ 1 row in set (0.01 sec)