binlog、redolog和undolog

这篇具有很好参考价值的文章主要介绍了binlog、redolog和undolog。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

binlog、redolog和undolog

前提

在MySQL中,redo log和undo log只适用于InnoDB存储引擎,因为要支持事务。而不适用于MyISAM等其他存储引擎。而binlog则适用于所有存储引擎。

理解

binlog、redolog和undolog 都是 MySQL 数据库中的日志文件。

binlog(归档日志)用于记录对数据库所做的更改操作,例如 INSERT、UPDATE 和 DELETE 等语句,以便进行数据备份和恢复操作。它也是基于语句的复制和行级复制的核心技术。

redolog(重做日志)是记录所有修改过的数据页,并把这些修改操作顺序地记录下来。它用于提供事务的持久性,并确保事务提交后数据一定被写入到磁盘。Redo Log 可以重新执行事务进行恢复。

undolog(撤销日志)主要用于支持事务回滚操作。当事务执行过程中需要进行回滚时,数据库引擎会根据相应的 undo log 记录来恢复事务执行前的状态。Undolog 用于保证 ACID 特性中的事务原子性和隔离性。

综上所述,binlog、redolog 和 undolog 都是 MySQL 数据库中的重要日志文件,它们分别记录数据库的更改操作事务的持久性事务回滚操作,以确保数据库的正确性和一致性。

作用

Binlog的作用

  • 数据恢复:Binlog允许在数据丢失或损坏的情况下进行数据恢复,通过重放Binlog中的操作,可以还原数据库状态。
  • 主从复制:Binlog用于实现主从复制,通过将主数据库的Binlog同步到从数据库,从而实现数据复制。

Redo Log的作用

  • 崩溃恢复:Redo Log用于崩溃恢复,即在数据库异常关闭后,通过Redo Log中的记录将数据库还原到一致状态。
  • 高性能写入:Redo Log的特性允许高性能的写入操作,因为它可以追加写入而不需要随机I/O。

Undo Log的作用

  • 事务回滚:Undo Log记录了事务执行前的数据,允许在事务回滚时还原数据。
  • MVCC实现:MySQL使用Undo Log来实现多版本并发控制(MVCC),允许不同事务之间的隔离性。

如何一起工作?

这三个日志组件通常一起工作,以确保数据库的一致性和可恢复性。当执行一个事务时,MySQL按以下步骤工作:文章来源地址https://www.toymoban.com/news/detail-741549.html

  1. 事务的更改首先记录到Undo Log,以便在需要时回滚事务。
  2. 然后,事务的更改被写入Redo Log,以确保即使在系统崩溃时,数据不会丢失。
  3. 最后,数据的更改被写入数据库表。

到了这里,关于binlog、redolog和undolog的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [数据库]MYSQL之授予/查验binlog权限

    在后端做MySQL主从备份;亦或是在大数据领域中,各类CDC同步( Canal / Flink CDC 等),均会基于 MYSQL 的 binlog 来实现。 因此,知道需要哪些权限?怎么去查验、怎么授权就很重要了。 感觉网上的文章没成体系地清楚,而今天工作上处理问题的过程中遇到了此疑问,且曾多次对

    2024年02月01日
    浏览(60)
  • mysql5.7数据库配置(安全以及binlog)

    1、安装validate_password插件: 登录mysql,查询已安装的插件: show plugins; 查询mysql插件目录位置: show variables like “%plugin_dir%”; 找到对应的目录,mysql自带 validate_password,然后我们将这个插件进行安装 通过命令行安装(可以不用重启服务): install plugin validate_password soname ‘vali

    2024年01月18日
    浏览(55)
  • 【数据库原理】(32)数据库设计-数据库物理设计

    数据库的物理设计是数据库设计过程中至关重要的一个阶段。其核心目标是选择一个适合应用环境的物理结构,以满足特定的性能、存储和访问需求。这一阶段涉及的关键任务可以分为两个主要步骤: 1. 确定数据的物理结构 存储结构和存取方法的选择 :这包括决定数据在物

    2024年01月19日
    浏览(57)
  • 【数据库概论】图数据库 Vs 关系数据库(1)

    假设有一个社交网络需要用数据库存储,其中人与人之间的关系有:朋友(friend)、父母(parent) 首先用关系数据库来实现朋友关系,需要 3 张表:people、people_relation、relation 如果要查询 Jam 的所有朋友的信息,那么就需要连接三张表: 如果表的数据量较大,那么查询效率就

    2024年03月14日
    浏览(48)
  • 【数据库】数据库设计

    数据库设计面对的主要有哪些问题 (1) 懂数据库原理同时懂甲方软件专业知识的人缺少; (2) 应用的数据库系统的最终目标往往在一开始不能完全明确,与开发者与用户方最初没在要求完全一致有关; (3) 应用业务系统千差万别的,难以找到一种通用的工具和方法。 (1) 对人员

    2024年02月05日
    浏览(65)
  • 【数据库】 | 初始数据库

    🎗️ 博客新人,希望大家一起加油进步 🎗️ 乾坤未定,你我皆黑马 1、什么是数据库 存储数据用文件就可以了,为什么还要弄个数据库? 文件保存数据有以下几个缺点: 文件的安全性问题 文件不利于数据查询和管理 文件不利于存储海量数据 文件在程序中控制不方便 数据

    2023年04月23日
    浏览(57)
  • 数据库应用:数据库管理系统与安装MySQL数据库

    目录 一、理论 1.数据库管理系统 2.关系型数据库 3.数据库 4.MySQL数据库 5.MySQL部署 二、实验 1.yum安装MySQL 2.编译安装MySQL 3.配置MySQL数据库的Tab补全  三、问题 1.数据库登录报错 2.数据库密码复杂度报错 3.数据库连接报错 四、总结 (1)概念 数据库管理系统(Database Management

    2024年02月13日
    浏览(57)
  • MySQL数据库:数据库管理系统与安装MySQL数据库

    目录 一、理论 1.数据库管理系统 2.关系型数据库 3.数据库 4.MySQL数据库 5.MySQL部署 二、实验 1.yum安装MySQL 2.编译安装MySQL 3.配置MySQL数据库的Tab补全  三、问题 1.数据库登录报错 2.数据库密码复杂度报错 3.数据库连接报错 四、总结 (1)概念 数据库管理系统(Database Management

    2024年02月12日
    浏览(65)
  • 数据库优化(数据库自身的优化,数据库表优化,程序操作优化)

    1. 增加次数据文件 从SQL SERVER 2005开始,数据库不默认生成NDF数据文件,一般情况下有一个主数据文件(MDF)就够了,但是有些大型的数据库,由于信息很多,而且查询频繁,所以为了提高查询速度,可以把一些表或者一些表中的部分记录分开存储在不同的数据文件里 由于C

    2024年02月14日
    浏览(50)
  • 【数据库】数据库常用函数

    TIMESTAMPDIFF 是一个MySQL函数,用于计算两个日期或时间之间的差值。函数返回两个日期或时间之间的差值,并以指定的单位表示。 语法: 其中: unit 是计算的单位。可以是以下值:YEAR(年)、QUARTER(季度)、MONTH(月)、DAY(天)、HOUR(小时)、MINUTE(分钟)、SECOND(秒)

    2024年02月11日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包