通过配置开启 SET slow_query_log=1
,只对当前会话有效,如果需要开启全局,则需要使用 SET GLOBAL slow_query_log = 1
设置 log 文件路径 SET slow_query_log_file="file_path"
,如果没有为慢查询日志文件指定文件名,默认文件名为 host_name-slow.log 设置阈值,单位秒 SET long_query_time=3
与慢查询相关的设置说明:
+------------------------------------------+------------------------+-------------------------------------------------------------------------- | Variable_name | Value | Content +------------------------------------------+------------------------+-------------------------------------------------------------------------- | slow_query_log | ON |打开慢查询,默认为关闭OFF | long_query_time | 1.000000 |定义慢查询时间,执行时间超过1s的sql才会记录到slow log | log_output | FILE |定义日志(general_log and slow_log)存放方式,FILE/TABLE/NONE | slow_query_log_file | D:\mysql\data\slow.log |慢日志存放的文件 | log_queries_not_using_indexes | OFF |5.6.5版本之后新增,记录任何不使用索引的sql | log_throttle_queries_not_using_indexes | 0 |5.6.5版本之后新增,用来限制相同sql每分钟写slow log的频率,默认0,不限制 | log_slow_admin_statements | OFF |5.6.11版本后新增,记录执行慢的管理操作,如ALTER/CREATE INDEX/ANALYZE TABLE | min_examined_row_limit | 0 |sql返回值小于设置的值则不记录到slow log,可设置为100 | log_slow_slave_statements | OFF |在从服务器开启慢查询日志 +------------------------------------------+------------------------+--------------------------------------------------------------------------
MySQL 自带慢 sql 分析工具 mysqldumpslow,默认在 MySQL/bin 目录下,可以通过控制台命令处理解析慢 sql 日志文件