Mysql:慢日志开启配置及分析工具mysqldumpslow

慢日志

参数 说明
slow_query_log 是否开启慢查询日志
slow_query_log_file 数据库慢查询日志存储路径
long_query_time 数据库慢查询阈值,超过该值记录慢查询日志
log_queries_not_using_indexes 未使用索引的查询是否记录到慢查询日志
log_output 日志存储方式,支持FILE,TABLE或FILE,TABLE,TABLE性能比FILE差很多,不止影响slow_log还影响general_log
  • 查看慢日志是否开启:
show variables like 'slow_query_log'
  • 开启慢日志查询
set global slow_query_log='ON'
  • 查看慢查询阈值
show variables like 'long_query_time'
  • 设置慢查询阈值,单位秒
set global long_query_time=1

mysqldumpslow

  • 参数说明:
  • -s表示按照哪个字段排序
参数 说明
c 访问次数
l 锁定时间
r 返回行数
t 查询时间
al 平均锁定时间
ar 平均返回行数
at 平均查询时间
  • -t表示top N

  • -g后跟正则表达式匹配stmt预处理语句中的字符串

  • -a表示不进行敏感数据转换,即展示原始参数

  • 例子:

// 按照平均查询时间降序,查出带select字符串的语句前10条。
mysqldumpslow -s at -t 10 -g "SELECT" yq01-migrate-big-mem-lzq04-slow.log|more
  • 结果:
Reading mysql slow query log from yq01-migrate-big-mem-lzq04-slow.log
Count: 1  Time=12.44s (12s)  Lock=0.00s (0s)  Rows=75731.0 (75731), root[root]@[172.18.16.61]
  SELECT * FROM smart_pms.pkg_info_online_3 order by id desc

Count: 202  Time=2.08s (420s)  Lock=0.00s (0s)  Rows=3892.0 (786175), root[root]@4hosts
  SELECT * FROM game_app WHERE (status=N AND id>N) ORDER BY create_time DESC

你可能感兴趣的:(Mysql)