作者:宓祥康
爱可生交付服务部团队 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 为不限制
二、查看方式与内容分析
慢日志分析的方式有两种,因为慢日志文件一般较小,所以一种方式为在慢日志文