mysql的redolog、undolog、binlog介绍,及mysql两阶段提交

news2025/1/10 18:56:50

https://blog.csdn.net/weixin_45676738/article/details/124770085
https://blog.csdn.net/TABE_/article/details/124935324

三种log

REDO LOG 称为 重做日志 ,提供再写入操作,恢复提交事务修改的页操作,用来保证事务的持久性。
UNDO LOG 称为 回滚日志 ,回滚行记录到某个特定版本,用来保证事务的原子性、一致性。
BIN LOG称为 二进制日志,mysql集群数据同步以及数据恢复功能。

首先提及一下事务的ACID :原子性、一致性、隔离性和持久性
隔离性:是由 锁实现的
原子性、一致性、和持久性 是由 redo log 和undo log 来保证的

binlog适用于维护集群内数据的一致性,redo log用于崩溃恢复,undo log相对于前面两种日志更好理解些,就是为了回滚事务用的

undolog(回滚日志 )

作用1:回滚数据(就是事务回滚操作会执行undo log日志恢复到事务开始前)
作用2:MVCC(记录多版本数据-解决事务的隔离性)

redolog

redo log 能保证对于已经COMMIT的事务产生的数据变更,即使是系统宕机崩溃也可以通过它来进行数据重做,达到数据的一致性,这也就是事务持久性的特征,一旦事务成功提交后,只要修改的数据都会进行持久化,不会因为异常、宕机而造成数据错误或丢失,所以解决异常、宕机而可能造成数据错误或丢是redo log的核心职责。

binlog

binlog即binary log,二进制日志文件,也叫作变更日志(update log)。它记录了数据库所有执行的DDL 和 DML 等数据库更新事件的语句,但是不包含没有修改任何数据的语句(如数据查询语句select、show等)。
binlog主要应用场景:
一是用于 数据恢复
二是用于 数据复制(集群数据同步作用)

在这里插入图片描述

mysql两阶段提交

InnoDB引擎更新一条指定数据的过程如下:
在这里插入图片描述
可以看到,InnoDB在写redo log时,并不是一次性写完的,而有两个阶段,Prepare与Commit阶段,这就是"两阶段提交"的含义。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/189559.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

电源管理系统的功能和发展前景分析

电源对于电子设备的重要性不言而喻,电源管理系统是将电源有效分配给系统中的不同组成,在电子设备中起到了电能变换、控制、检测等作用,保证系统的稳定运行,对设备的性能有着直接影响,广泛用在工业、新能源、机器设备、…

一、初识 Spring 框架

文章目录一、Spring 简介二、Spring 框架的优点三、Spring 框架的组成四、Spring 框架 学习路线一、Spring 简介 Spring 框架简介 2004年3月24日发布了Spring 1.0正式版,Spring 框架的诞生给整个软件行业带来了春天。这个框架极大程度上简化了开发,其本…

基于无人机和背负式激光雷达点云的黄河三角洲刺槐林地上生物量估算

论文标题:Estimation of aboveground biomass of Robinia pseudoacacia forest in the Yellow River Delta based on UAV and Backpack LiDAR point clouds ABSTRACT 人工林是陆地碳汇的重要来源。黄河三角洲刺槐林是我国最大的人工生态防护林。然而,自…

“深度学习”学习日记。与学习有关的技巧--超参数的验证

2023.1.31 超参数是指神经网络中,神经元的数量、batch的大小、参数更新时的学习率或权值衰减等,虽然超参数的取值非常重要,但是决定超参数的值时会伴随很多人工的试错,所以我们需要高效地寻找超参数的值的方法 一,验…

【4】【Spring】,【Ioc/DI】,【IoC容器】,【Bean】

1、Ioc/DI,IoC容器,Bean 为了解决不同实现方式耦合度高 Ioc:(Inversion of Control)控制反转 主要思想:使用对象时,由主动new产生对象转换为由外部提供对象,此过程中对象创建控制权由程序转移…

vite打包静态文件打开显示空白

vite 打包生成静态文件打开显示空白 需求场景 本地调试访问打包的文件看是否有啥问题,方便定位线上问题安卓手机需要去直接访问静态文件,而不是访问域名的情况 vite 打包生成的文件如果直接放在服务器中是可以正常访问的,但是本地直接访问…

三个方面使CRM在360度客户视图中受益

360度客户视图这个词相信您不会陌生,很多关于CRM客户管理系统的文章中都有所提及。所谓的360度客户视图,是帮助企业和业务人员建立客户认知,消除客户生命周期中的信息脱节,让业务人员为客户提供一致性的体验。接下来我们们说&…

Windows10神州网信版的安装

在大约20天里面我完成了Windows10神州网信版72台的安装,有些2009~2014年的计算机完成安装后做一般的办公应用也能流畅运行。买一台新的计算机至少要好几千,通过更换固态硬盘和内存条可以达到旧物新用的目的。 一、安装过程   1、检查硬件  …

Coggle 30 Days of ML(23年1月)打卡

前言 任务链接 这个任务内容比较感兴趣而且和工作内容相关,学习一下打个卡。 编码完成任务1,2,3,5,6,目前手上只有2080,之后在3090上跑。 最近杂事多,笔记、任务4和7之后再补充。 …

vue前端框架课程笔记(五)

目录非文件组件使用步骤定义组件示例(第一部分):使用Vue.extend函数创建三个组件注册组件示例(第二部分):组件的全局和局部注册组件使用示例(第三部分):编写组件标签最终…

软件工程(三)——需求工程、需求开发、需求定义

目录 一、需求定义 二、需求验证 三、需求管理 1.定义需求基线 2.需求跟踪 3.变更控制 四、软件系统建模 一、需求定义 把已经分析好的需求,落成文档,把东西记录下来,成为《需求规格说明书》。需求定义的方法有严格定义法 以及 原型法…

Java三路快速排序

概念 三路快速排序: 是双路快速排序的进一步改进版本,三路排序算法把排序的数据分为三部分,分别为小于 v,等于 v,大于 v,v 为标定值,这样三部分的数据中,等于 v 的数据在下次递归中…

QSplitter学习笔记

QSplitter是分割窗口控件,并且可以拖动窗口来改变窗口的大小,是主界面显示时经常用到,本篇介绍它的交互操作。QSplitter可以容纳多个Widget,具有布局的特点,并且可以动态调整各个Widget的大小。QSplitter布局有两种方式…

前端学习第五站——CSS学习进阶篇

目录 一、选择器进阶 1. 后代选择器(空格) 2. 子代选择器 > 3. 并集选择器:, 4. 交集选择器:紧挨着 5. hover伪类选择器 6. emmet语法 7. 选择器总结 二、背景相关属性 1. 背景颜色 2. 背景图片 3. 背景…

若依框架对接LDAP

这里直接使用spring ldap实现认证。 背景在若依框架上对接LDAP 代码 引入依赖 <!-- 对接ldap --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-ldap</artifactId></dependency>…

React-Native 开发实用指南|环信学院

本文主要介绍 React-Native 的实际使用经验&#xff0c;对于想要快速入门的同学是有帮助的。 作者 | 佐玉 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 1、整体介绍 首先说&#xff0c; React-Native 用来做什么&#xff1f;传统的开发中&#xff0c;按照平…

编译原理学习笔记16——语义分析和中间代码生成1

编译原理学习笔记16——语义分析和中间代码生成116.1 中间语言16.2 常用的中间语言形式16.1 中间语言 中间语言的特点和作用 特点 独立于机器复杂性界于源语言和目标语言之间 引入中间语言的优点 使编译程序的结构在逻辑上更为简单明确便于进行与机器无关的代码优化工作易于移…

力扣刷题|110.平衡二叉树、257. 二叉树的所有路径、404.左叶子之和

LeetCode 110.平衡二叉树 题目链接&#x1f517; LeetCode 110.平衡二叉树 思路 递归三部曲分析&#xff1a; 明确函数的形参和返回值 参数&#xff1a;当前传入结点 返回值&#xff1a;以当前传入结点为根节点的树的高度 那么如何标记左右子树是否差值大于1呢&#xff…

3、SpringJdbcTemplate声明式事务

JdbcTemplate基本使用 01-JdbcTemplate基本使用-概述(了解) JdbcTemplate是spring框架中提供的一个对象&#xff0c;是对原始繁琐的Jdbc API对象的简单封装。spring框架为我们提供了很多的操作模板类。例如&#xff1a;操作关系型数据的JdbcTemplate和HibernateTemplate&…

在Anaconda中安装pytorch的详细步骤+PyCharm环境配置

前言 深度学习小白一枚&#xff0c;自己的笔记本配置如下&#xff1a; 显卡&#xff1a;NVIDIA GeForce MX150&#xff08;非常垃圾的笔记本显卡&#xff09;固态硬盘 256GCPU&#xff1a;lntel Core™i7-8550UWindows&#xff1a;Windows 11家庭中文版 其他配置&#xff1a;…