作者:宓祥康
爱可生交付服务部团队 DBA 擅长日志分析、问题排查等;主要负责处理 MySQL 与我司自研数据库自动化管理平台 DMP 的日常运维问题,对数据库及周边技术有浓厚的学习兴趣。
本文来源:原创投稿
- 爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。
引言
-
什么是 Slow Query Log?
-
该如何使用它?
-
它的存在对运维数据库有什么帮助呢?
一、 简介
慢查询日志,开启它我们可以通过参数来控制其记录执行或查询时间长的 SQL、全表扫描的 SQL、没有使用索引的 SQL。没错,它的作用就是记录哪些糟糕的、让数据库变慢的 SQL,把它们揪出来。
我们一般通过如下参数来控制 slow 的开启与记录:slow_query_log、slow_query_log_file、long_query_time、min_examined_row_limit、log_output、log_queries_not_using_indexes、log_throttle_queries_not_using_indexes。
-
slow_query_log:控制 slow_query_log 是否开启,参数 ON|OFF
-
slow_query_log_file:控制文件的写入位置,参数为文件的具体位置,如:/data/slow.log
-
long_query_time:设置 SQL 执行时间大于等于多少秒(可精确到微秒)时记录到日志中
-
min_examined_row_limit:设置检查的行数大于等于多少行时记录到日志中
-
log_output:设置慢查询记录到哪里,参数 FILE|TABLE
-
log_queries_not_using_indexes:控制查询过程中未使用索引或全表扫描的 SQL 是否记录到日志中
-
log_throttle_queries_not_using_indexes:开启 log_queries_not_using_indexes 后,此参数会限制每分钟可以写入慢速查询日志的此类查询的数量,参数设置 0 为不限制
二、查看方式与内容分析
慢日志分析的方式有两种,因为慢日志文件一般较小,所以一种方式为在慢日志文件中直接使用 less 或 more 命令来查看。第二种方式则是利用 MySQL 官方提供给我们的程序:mysqldumpslow 来快速查看 slowlog 日志中记录的慢 SQL。
对于我们详细来分析 SQL 的话,一般采用第一种方式,查找到对应时间点的

本文介绍了慢查询日志的作用,如何配置和查看,以及如何安全地在线清理slow.log,以优化数据库性能。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



