MySQL(InnoDB剖析):---文件之(日志文件:错误日志(error log)、慢查询日志(slow query log)、查询日志(query log)、二进制日志(bin log))

  • 日志文件记录了影响MySQL数据库的各种类型活动
  • 常见的日志文件有:
    • 错误日志(error log)
    • 慢查询日志(slow query log)
    • 查询日志(query log)
    • 二进制文件(bin log)

一、错误日志

  • 错误日志文件对MySQL的启动、运行、关闭过程进行了记录。遇到问题时应该首先查看该文件以便定位问题。该文件不仅记录了所有的错误信息,也记录一些警告信息或正确的信息
  • 用户可以通过下面命令来查看错误日志文件的位置:
show variables like 'log_error'\G;

  • 当MySQL不能正常启动时,第一个必须查找的文件应该就是错误日志文件,该文件记录了错误信息。例如下面显示数据库不能启动的原因是找不到权限哭mysql,所以启动失败

  • 例如用户可以直接在错误日志文件中得到优化的帮助而不需要通过查看数据库状态来得知。例如,下面的错误文件中的信息高度用户需要增加InnoBD存储引擎的redo log

二、慢查询日志

  • 慢查询日志的主要用途慢查询日志可以帮助定位可能存在问题的SQL语句,从而进行SQL语句层面的优化

log_slow_queries参数

  • 该参数控制着MySQL是否开启慢查询日志的功能
  • 默认值为关闭
show variables like 'log_slow_queries'\G;

long_query_time参数

  • 例如,可以在MySQL启动时设一个阈值,将运行时间超过该值的所有SQL语句都记录到慢查询日志中。DBS可以对日志文件进行检查,确认是否有SQL语句需要进行优化
  • long_query_time参数就是这个阈值默认值为10,代表10秒
show variables like 'long_query_time'\G;

  • 备注只有运行时间大于long_query_time的SQL语句才会被记录下来,小于或等于long_query_time的SQL语句不会被记录下来

log_queries_not_using_indexes参数

  • 开启了该参数之后,如果运行的SQL语句没有使用索引则MySQL数据库会将这条SQL语句记录到慢查询日志文件
  • 该参数默认关闭
show variables like 'log_queries_not_using_indexes'\G;

log_throttle_queries_not_using_indexes参数

  • 从MySQL 5.6开始新增了这个参数,用来表示每分钟允许记录到slow log的且未使用索引的SQL语句次数
  • 该参数默认值为0,表示没有限制意思为每分钟记录到slow log的且未使用索引的SQL语句次数不限
show variables like 'log_throttle_queries_not_using_indexes'\G;
  • 在生产环境下,若没有使用索引,此类SQL语句会频繁地被记录到slow log,从而导致slow log文件的大小不断增加,故DBA可通过此参数进行配置

mysqldumpslow命令

  • 该命令是为了慢查询日志文件进行设计的。例如如果慢查询日志文件的内容过多,不容易进行信息筛选,那么可以通过此命令进行信息筛选
  • 例如下面以默认命令格式查看nh122-190-slow.log慢查询日志文件
mysqldumpslow nh122-190-slow.log

  • 例如用户希望在david.log慢查询日志文件中得到执行时间最长的10条SQL语句,可以运行如下的命令:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值