MySQL中binlog、redolog与undolog的不同之处解析

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS AI 助手,专业版
简介: 每个都扮演回答回溯与错误修正机构角色: BinLog像历史记载员详细记载每件大大小小事件; RedoLog则像紧急救援队伍遇见突發情況追踪最后活动轨迹尽力补救; UndoLog就类似时间机器可倒带历史让一切归位原始样貌同时兼具平行宇宙观察能让多人同时看见各自期望看见历程而互不干扰.

在MySQL数据库中,binlog(二进制日志)、redolog(重做日志)和undolog(回滚日志)是三种不同类型的日志文件,它们各自承担着不同的角色以确保数据库的数据一致性和恢复能力。

Binlog (二进制日志)

Binlog是MySQL用来进行数据复制和恢复操作的一个重要组件。它记录了所有修改了数据库状态的语句,比如INSERT、UPDATE、DELETE等。这些记录是以事件形式存储,并且按照它们被执行的顺序来进行记录。
主要用途:

  • 主从复制:通过binlog实现数据在主从服务器之间同步。
  • 点对点恢复:如果需要将数据库回滚到某个特定时间点,可以使用binlog中存储的事件来实现。

特性:

  • 存储格式为二进制。
  • 可配置为按需刷新到磁盘。
  • 可以设置过期时间自动清理旧文件。

Redo Log (重做日志)

Redo Log属于InnoDB存储引擎特有,并且对于保证事务持久性至关重要。当一个事务被提交时,在事务所做更改真正写入表之前,这些更改会先写入到redolog中。如果系统发生故障导致未将内存中修改过但未持久化到磁盘上数据丢失,则可以通过redo log来重新执行这些操作确保数据不会丢失。

主要用途:

  • 故障恢复: 在系统奔溃后使用redo log重新执行那些已经提交但尚未写入硬盘上永久表空间文件里面去得变更操作。

特性:

  • 循环写入方式管理空间。

Undo Log (回滚日志)

Undo Log也是InnoDB引擎专有,在处理事务时非常关键。当进行INSERT、UPDATE或DELETE等操作时, InnoDB会生成相应undo log信息, 该信息能够撤销最近一次修改或者在并发情况下提供旧版本读(即MVCC)所需信息.

主要用途:

  • 提供MVCC: 在多版本并发控制下支持读已提交(Read Committed)和可重读(Repeatable Read)两种隔离级别.
  • 支持DML语句撤销: 如果一个事务需要被回滚, undo log就包含了所有必须应用于数据库以还原原始状态前所作出变化得反向操作.

特性:

  • 存放在共享表空间内部.

总结:

三者各司其职:

  1. BinLog负责记录所有影响数据变动得SQL语句序列, 主从同步与备份还原依赖此机理.
  2. RedoLog确保交易具备ACID属性里面D即Durability永久属性: 即使出现系统奇突然断电情况也能够根据RedoLog完成交易前已经标记为commit状态交易相关影响内容再次刷新至硬盤保存起來.
  3. UndoLog则负责维护多版本并发控制与支援用户层面上可能触及得rollback行为.

每个都扮演回答回溯与错误修正机构角色: BinLog像历史记载员详细记载每件大大小小事件; RedoLog则像紧急救援队伍遇见突發情況追踪最后活动轨迹尽力补救; UndoLog就类似时间机器可倒带历史让一切归位原始样貌同时兼具平行宇宙观察能让多人同时看见各自期望看见历程而互不干扰.

目录
相关文章
|
4月前
|
SQL 运维 关系型数据库
深入探讨MySQL的二进制日志(binlog)选项
总结而言,对MySQL binlogs深度理解并妥善配置对数据库运维管理至关重要;它不仅关系到系统性能优化也是实现高可靠性架构设计必须考虑因素之一。通过精心规划与周密部署可以使得该机能充分发挥作用而避免潜在风险带来影响。
174 6
|
6月前
|
存储 SQL 关系型数据库
MySQL的Redo Log与Binlog机制对照分析
通过合理的配置和细致的管理,这两种日志机制相互配合,能够有效地提升MySQL数据库的可靠性和稳定性。
240 10
|
6月前
|
存储 SQL 关系型数据库
MySQL 核心知识与索引优化全解析
本文系统梳理了 MySQL 的核心知识与索引优化策略。在基础概念部分,阐述了 char 与 varchar 在存储方式和性能上的差异,以及事务的 ACID 特性、并发事务问题及对应的隔离级别(MySQL 默认 REPEATABLE READ)。 索引基础部分,详解了 InnoDB 默认的 B+tree 索引结构(多路平衡树、叶子节点存数据、双向链表支持区间查询),区分了聚簇索引(数据与索引共存,唯一)和二级索引(数据与索引分离,多个),解释了回表查询的概念及优化方法,并分析了 B+tree 作为索引结构的优势(树高低、效率稳、支持区间查询)。 索引优化部分,列出了索引创建的六大原则
168 2
|
6月前
|
存储 SQL 关系型数据库
MySQL 核心知识与性能优化全解析
我整理的这份内容涵盖了 MySQL 诸多核心知识。包括查询语句的书写与执行顺序,多表查询的连接方式及内、外连接的区别。还讲了 CHAR 和 VARCHAR 的差异,索引的类型、底层结构、聚簇与非聚簇之分,以及回表查询、覆盖索引、左前缀原则和索引失效情形,还有建索引的取舍。对比了 MyISAM 和 InnoDB 存储引擎的不同,提及性能优化的多方面方法,以及超大分页处理、慢查询定位与分析等,最后提到了锁和分库分表可参考相关资料。
161 0
|
4月前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
424 158
|
4月前
|
关系型数据库 MySQL 数据库
自建数据库如何迁移至RDS MySQL实例
数据库迁移是一项复杂且耗时的工程,需考虑数据安全、完整性及业务中断影响。使用阿里云数据传输服务DTS,可快速、平滑完成迁移任务,将应用停机时间降至分钟级。您还可通过全量备份自建数据库并恢复至RDS MySQL实例,实现间接迁移上云。
|
4月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
942 152
|
4月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎,提供高性价比、稳定安全的云数据库服务,适用于多种行业与业务场景。
785 156
|
4月前
|
缓存 监控 关系型数据库
使用MYSQL Report分析数据库性能(中)
使用MYSQL Report分析数据库性能
394 156
|
4月前
|
缓存 监控 关系型数据库
使用MYSQL Report分析数据库性能(上)
最终建议:当前系统是完美的读密集型负载模型,优化重点应放在减少行读取量和提高数据定位效率。通过索引优化、分区策略和内存缓存,预期可降低30%的CPU负载,同时保持100%的缓冲池命中率。建议每百万次查询后刷新统计信息以持续优化
493 161

热门文章

最新文章

推荐镜像

更多