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

本文详细介绍了MySQL的四种日志:错误日志(记录启动、运行、关闭过程中的问题)、慢查询日志(用于SQL优化,通过参数如long_query_time控制)、查询日志(记录所有请求信息)和二进制日志(用于恢复、复制和审计,通过log-bin参数控制)。文中还提及了相关参数的配置和使用,如log_slow_queries、log_output、sync_binlog等,并提到了mysqlbinlog工具用于查看二进制日志。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 日志文件记录了影响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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值