当前位置: 首页 > news >正文

mysql的binlog,redolog,undolog的区别

1. Binary Log (binlog)

作用

  • 记录所有的DDL(数据定义语言)和DML(数据操纵语言)操作,例如 CREATE TABLEALTER TABLEINSERTUPDATEDELETE 等。

  • 主要用于复制和数据恢复。

特点

  • 基于语句的复制:记录的是SQL语句。

  • 基于行的复制:记录的是行的变化。

  • 混合模式:可以设置为记录SQL语句或行的变化。

位置

  • 存储在磁盘上,通常位于MySQL的数据目录中。

2. Redo Log (重做日志)

作用

  • 确保事务的持久性,在事务提交时,所有的修改都会先写入重做日志,然后才写入磁盘上的数据文件。

  • 主要用于数据库的崩溃恢复。

特点

  • 物理日志:记录的是在数据页上的实际修改。

  • 循环使用:重做日志是循环使用的,有固定的起始和结束位置。

  • InnoDB引擎特有:是InnoDB存储引擎特有的。

位置

  • 存储在磁盘上,通常位于InnoDB的数据文件内部,如ibdata文件或ib_logfile

3. Undo Log (撤销日志)

作用

  • 支持事务的原子性,通过记录数据修改前的状态,可以在事务失败时回滚到事务开始前的状态。

  • 提供多版本并发控制(MVCC),允许读取事务看到一致性的数据快照。

特点

  • 逻辑日志:记录的是如何撤销之前的修改。

  • 循环使用:撤销日志也是循环使用的。

  • InnoDB引擎特有:同样是InnoDB存储引擎特有的。

位置

  • 存储在磁盘上,通常位于InnoDB的数据文件内部。

总结

  • Binlog 主要用于复制和数据恢复。

  • Redo Log 主要用于确保事务的持久性,特别是在系统崩溃后的恢复。

  • Undo Log 主要用于支持事务的原子性和实现MVCC,确保非阻塞的读取操作。

每种日志都是为了解决数据库在特定场景下的不同需求而设计的,它们的组合使用保证了MySQL数据库的高可用性和数据一致性。

http://www.xdnf.cn/news/66403.html

相关文章:

  • 安卓垂直进度条
  • 学习深度学习是否要先学习机器学习?工程师的路径选择策略
  • 部署Kimi-VL-A3B-Instruct视频推理
  • AgentGPT开源程序可以在浏览器中组装、配置和部署自主人工智能代理
  • FramePack:让视频生成更高效、更实用
  • 从0到1学习X-File-Storage:一站式文件存储解决方案
  • spark基础介绍
  • C++中函数的实现写在头文件内
  • Linux系统的介绍及操作系统的基本概念
  • 赛灵思Xilinx FPGa XCKU15P‑2FFVA1156I AMD Kintex UltraScale+
  • Qt6文档阅读笔记-RESTful API Server解析
  • 从C语言变量看内存
  • BR_调制特性(RF/TRM/CA/BV-07-C [Modulation Characteristics])
  • [密码学基础]GB与GM国密标准深度解析:定位、差异与协同发展
  • 【C++】基于红黑树的map和set封装实现
  • 美信监控易:易用性卓越的智能运维管理平台
  • 详解机器学习各算法的优缺点!!
  • 算法——背包问题(分类)
  • DeepSeek与WPS的动态数据可视化图表构建
  • 2025 活体识别+人脸认证工具类【阿里云api,需要先申请试用】
  • NetApp ONTAP 9 故障磁盘更换操作指南
  • MySQL的窗口函数(Window Functions)
  • 实训Day-1 漏洞攻击实战
  • 【LeetCode 热题 100】哈希、双指针、滑动窗口
  • 【Markdown】【HTML】在Markdown中实现康奈尔笔记模式(右侧留白)
  • 算法分析与设计——动态规划复习题(待更新
  • Flutter 状态管理 Riverpod
  • 华为IPD流程变革如何推动组织转型?2025变革路径
  • 从代码实现理解Vision Permutator:WeightedPermuteMLP模型解析
  • Java并发编程-线程池