MySQL中常见的几种日志类型【重点】

在MySQL中,有几种不同类型的日志,用于记录数据库的活动和操作,以便于故障排查、性能调优和数据恢复等目的。以下是MySQL中常见的几种日志类型:

  1. 错误日志(Error Log):
    错误日志记录了MySQL服务器在启动和运行过程中出现的错误消息、警告和一般信息。错误日志对于诊断数据库问题非常有用,例如数据库启动失败、查询执行错误等情况。

  2. 查询日志(Query Log)
    查询日志记录了所有已执行的SQL语句,包括SELECT、INSERT、UPDATE、DELETE等操作。查询日志可以用于分析数据库的性能问题、优化慢查询以及审计数据库操作等。

  3. 慢查询日志(Slow Query Log)
    慢查询日志记录了执行时间超过预定义阈值的SQL查询语句。通常情况下,管理员可以根据自己的需求设置慢查询日志的阈值,以便于找出需要优化的查询语句,并对其进行性能调优。

  4. 归档日志(BinLog)
    事务日志记录了所有对数据库进行修改的操作,例如INSERT、UPDATE、DELETE等。事务日志是MySQL数据库复制(Replication)的基础,它可以用于在主从服务器之间复制数据,并实现数据备份和灾难恢复。(用于数据备份和主从复制)

  5. 重做日志(Redo Log)
    重做日志记录了数据库引擎对数据文件进行的物理级别的修改,例如页的插入、更新和删除操作。重做日志用于在数据库崩溃或断电等意外情况下,恢复数据到最新的一致状态。

  6. 回滚日志(Undo Log)
    撤销日志记录了数据库引擎对事务进行的修改操作的逆操作,以便于在事务回滚或数据库崩溃时撤销事务对数据库的影响。

这些日志类型在MySQL中起着不同的作用,可以帮助管理员监控数据库的健康状态、优化性能和实现数据的安全备份和恢复。

参考:
【1】 https://zhuanlan.zhihu.com/p/150105821
【2】https://xiaolincoding.com/mysql/log/how_update.html#%E4%B8%BA%E4%BB%80%E4%B9%88%E9%9C%80%E8%A6%81-undo-log
【3】https://javaguide.cn/database/mysql/mysql-logs.html#%E5%89%8D%E8%A8%80


最重要的三个日志: 作用
undo log(回滚日志) 是 Innodb 存储引擎层生成的日志,实现了事务中的原子性,主要用于事务回滚和 MVCC
redo log(重做日志) 是 Innodb 存储引擎层生成的日志,实现了事务中的持久性,主要==用于掉电等故障恢复 ==
binlog (归档日志) 是 Server 层生成的日志,主要用于数据备份和主从复制

1——undo log(回滚日志)

undo log(回滚日志),它保证了事务的 ACID 特性 (opens new window)中的原子性(Atomicity)。

undo log 两大作用:

  1. 实现事务回滚,保障事务的原子性。事务处理过程中,如果出现了错误或者用户执 行了 ROLLBACK 语句,MySQL 可以利用 undo log 中的历史数据将数据恢复到事务开始之前的状态。

当进行操作(修改、删除、新增)时,undo log 中会把记录中的内容都记下来,然后执行回滚操作的时候,就读取 undo log 里的数据,比如:

  • 在插入一条记录时,要把这条记录的主键值记下来,这样之后回滚时只需要把这个主键值对应的记录删掉就好了;
  • 在删除一条记录时,要把这条记录中的内容都记下来,这样之后回滚时再把由这些内容组成的记录插入到表中就好了;
  • 在更新一条记录时,要把被更新的列的旧值记下来,这样之后回滚时再把这些列更新为旧值就好了。
  • <
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值