【MySQL】 ---- binlog、redo log和undo log

MySQL的事务日志包括binlog、redo log和undo log,它们各自扮演不同角色。binlog记录所有DDL和DML(除查询外),用于主从复制和数据恢复。redo log保障InnoDB引擎的事务持久性,保证崩溃后的恢复。undo log则用于事务的原子性,允许回滚并实现MVCC。它们共同确保数据库的ACID特性。

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

binlog、redo log和undo log

一、日志概念

日志是mysql数据库的重要组成部分,记录着数据库运行期间各种状态信息。mysql日志主要包括错误日志、查询日志、慢查询日志、事务日志、二进制日志几大类。本文重点关注二进制日志(binlog)和事务日志(包括redo log和undo log)

二、binlog

1. 概念

binlog用于记录数据库执行的写入性操作(不包括查询)信息,以二进制的形式保存在磁盘中。binlog是mysql的逻辑日志,并且由Server层进行记录,使用任何存储引擎的mysql数据库都会记录binlog日志。

MySQL 的二进制日志 binlog 记录了所有的 DDL 和 DML 语句(除了数据查询语句select、show等),以事件形式记录。

在这里插入图片描述

2. 使用场景

binlog的主要使用场景有两个,分别是主从复制数据恢复

  • 主从复制: 在Master端开启binlog,然后将binlog发送到各个Slave端,Slave端重放binlog从而达到主从数据一致

    主从复制原理:

    主要涉及三个线程: binlog线程、I/O线程和SQL线程

    • binlog 线程 :负责将主服务器上的数据更改写入二进制日志(Binary log)中
    • I/O 线程 :负责从主服务器上读取二进制日志,并写入从服务器的中继日志(Relay log)
    • SQL 线程 :负责读取中继日志,解析出主服务器已经执行的数据更改并在从服务器中重放(Replay)。

    在这里插入图片描述

三、redo log

1. 概念

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值