2026-02-22 14:02:20
MySQL慢查询日志详解
MySQL慢查询日志是数据库性能调优的重要工具之一,它记录了所有执行时间超过指定阈值(long_query_time)并且扫描记录数不小于min_examined_row_limit的所有SQL语句的日志。以下是对MySQL慢查询日志的详细解析:
一、慢查询日志的基本设置
启用慢查询日志
在MySQL 5.1.29之前,使用--log-slow-queries[=file_name]选项启动mysqld时,慢查询日志开始被记录。
在MySQL 5.1.29及以后,推荐使用--slow_query_log[={0|1}]来显式指定慢查询的状态(0为关闭,1为开启),并使用slow_query_log_file[=file_name]来指定慢查询日志的路径。
设置阈值
long_query_time参数用于设置慢查询的阈值,单位为秒,最小为0,精度可以到微秒。默认情况下,该值为10秒。
min_examined_row_limit参数用于设置扫描记录数的最小限制,但通常这个参数在默认情况下已经足够,不需要手动调整。
日志输出方式
使用--log-output参数可以指定日志的输出方式,默认输出到文件,也可以选择输出到表(但表中记录的慢查询时间只能精确到秒)。
二、慢查询日志的默认行为
三、慢查询日志的位置和格式
四、慢查询日志的读取方法
直接查看
可以直接使用文本编辑器或命令行工具(如more、cat等)查看慢查询日志文件。
使用mysqldumpslow命令
mysqldumpslow是一个专门用于分析慢查询日志的工具,它可以对SQL文本完全一致但变量不同的语句进行统计,变量值用N来代替。
使用mysqldumpslow可以大大提高阅读慢查询日志的效率,并迅速定位系统的SQL瓶颈。
五、慢查询日志的应用场景
综上所述,MySQL慢查询日志是数据库性能调优的重要工具之一,通过合理配置和使用慢查询日志,可以大大提高数据库的运行效率和性能。