undo log、redo log和bin log

undo log

1.undo log是一种用于撤销回退的日志,MYSQL会记录更新前的数据到undo log日志文件里面,当事务回滚或者数据库崩溃时,可以用undo log进行回退
2.undo log在事务开始前产生,事务提交时并不会直接删除,而是会将对应的undo log放入删除列表中,后台有专门的线程purge thread进行回收处理

undo log作用

1.提供回滚操作,undo log是逻辑日志,可以认为delete一条记录时,会对应记录一条insert记录。
2.提供多版本控制MVCC,当读取的某一行被其它事务锁定时,它可以从undo log中分析该行记录以前的数据版本是怎么样的,从而让用户能够读取到当前事务操作之前的数据(快照读)

redo log

1.innoDB对数据的更新,是先将更新记录写入redo log日志,然后会在系统空闲的时候,或者是按照设定的更新策略再将日志中的内容更新到磁盘中,这就是所谓的预写式技术,这种技术大大减少io操作频率,提升数据刷新的效率。
2.redo log包括两部分,一个是内存中的日志缓冲redo log buffer,另一个是磁盘上的日志文件 redo log file

redo log的作用

mysql每执行一条DML语句,先将记录写入redo log buffer,后续某个时间点再一次性将多个操作记录写到redolog file,当故障发生致使内存数据丢失后,innodb会在重启时经过重放redo,将Page恢复到崩溃之前的状态,通过Redo log可以实现事务的持久性

bin log

1.bin log是一个二进制格式的文件,用于记录用户对数据库更新的SQL语句信息,更改数据库表和更改内容的SQL语句都会记录到binlog里,但是不会记录查询操作
2.bin log 是在mysql的Server层实现的
3.bin log为逻辑日志,记录的是SQL语句的原始逻辑,不限制大小,追加写入,不会覆盖以前的日志,默认情况下binlog日志是二进制格式的,不能使用查看文本工具的命令,比如cat、vi等查看,而使用mysqlbinlog查看

bin log的作用

1.主从复制,在主库中开启bin log功能,这样主库就可以把binlog传递给从库,从库拿到bin log实现数据恢复达到主从数据一致性
2.数据恢复,通过mysqlbinlog工具来恢复数据

bin log与redo log的区别

1.redo log是InnoDB引擎特有的;bin log是MYSQL的Server层实现的,所以引擎都可以使用。
2.redo log是物理日志,记录的是“在xx页上做了什么修改”,bin log是逻辑日志,记录的是对应的SQL语句
3.redo log是循环写的,空间会用完,需要write pos和check point搭配;binlog是追加写,写到一定大小会切换到下一个,并不会覆盖以前的日志
4.redo log有crash-safe能力而bin log没有

CrashSafe

CrashSafe 指MYSQL服务器宕机重启后,能够保证
1.所有已经提交的事务数据仍然存在
2.所有没有提交的数据自动回滚

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

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

相关文章

Django 异常信息 E302 expected 2 blank lines, found 1

在Django中,PEP 8风格指南建议在任何类定义之前都应该有两个空白行,包括视图(views)。错误信息"E302 expected 2 blank lines, found 1"表示在类定义之前只有一个空白行,而Django希望有两个空白行。 要修复…

垃圾回收机制和常用的算法

一.什么是垃圾回收? 垃圾回收主要针对堆和方法区(非堆),程序计数器,虚拟机栈,本地方法栈这三个区域属于线程私有,随着线程的销毁,自然就会雄安会了,因此不需要堆着三个区域进行垃圾…

Sqlserver_Oracle_Mysql_Postgresql不同关系型数据库之主从延迟的理解和实验

关系型数据库主从节点的延迟是否和隔离级别有关联,个人认为两者没有直接关系,主从延迟在关系型数据库中一般和这两个时间有关:事务日志从主节点传输到从节点的时间事务日志在从节点的应用时间 事务日志从主节点传输到从节点的时间&#xff0…

前端-MVVM

MVVM MVVM 由以下三个内容组成 View :界⾯ Model :数据模型 ViewModel :作为桥梁负责沟通 View 和 Model 在 JQuery 时期,如果需要刷新 UI 时,需要先取到对应的 DOM 再更新UI ,这样数据和业务的逻辑就和…

sql的count函数优化

sql的count(1)函数会执行遍历表统计符合条件的数目,下面有两个sql 第一条: select count(1) from membership_call_detail_statistics a where a.repository_id f2a4ed6b3e074e33bd99998c1def26f8 and a.statistics_date between 2023-04-01 00:00:0…

Python 程序设计入门(006)—— 列表的操作(1):列表元素的增、删、改操作

Python 程序设计入门(006)—— 列表的操作(1):列表元素的增、删、改操作 目录 Python 程序设计入门(006)—— 列表的操作(1):列表元素的增、删、改操作一、创…

【MacOS】mac OS 安装HP 打印机驱动 hp laserjet m1213nf mfp

先确认一下机器复印是否正常.确认一下打印机的硬件. 如果复印没问题 1. 下载v5.1集合包Hewlett-Packard 打印机驱动程序 v5.1.1 (OS X) (中国) 2. 苹果商城中,下载Pacifist,运行Pacifist,用Pacifist程序打开v5.1并安装 3. 电脑--系统偏好设置--打印…

Kafka-副本数量设置

1. ISR副本数量设置 指的是存活的副本数量 ISR 机制的另外一个相关参数是 min.insync.replicas , 可以在 broker 或者主题级别进行配置,代表 ISR 列表中至少要有几个可用副本。这里假设设置为 2,那么当可用副本数量小于该值时,就认为整个分…

Redis BigKey案例

面试题: 阿里广告平台,海量数据里查询某一固定前缀的key小红书,你如何生产上限制keys*/flushdb/flushall等危险命令以防止误删误用?美团,MEMORY USAGE命令你用过吗?BigKey问题,多大算big&#…

服务器流量

1.服务器流量分为入流量和出流量 入流量(Inbound Traffic)是指流向服务器的数据流量,也就是客户端发送到服务器的数据。这些数据可能包括请求信息、文件上传等。 出流量(Outbound Traffic)是指从服务器流向客户端的数…

纯css实现九宫格图片

本篇文章所分享的内容主要涉及到结构伪类选择器&#xff0c;不熟悉的小伙伴可以了解一下&#xff0c;在常用的css选择器中我也有分享相关内容。 话不多说&#xff0c;接下来我们直接上代码&#xff1a; <!DOCTYPE html> <html lang"en"><head>&l…

matlab使用教程(8)—绘制三维曲面图

1网格图和曲面图 MATLAB 在 x-y 平面中的网格上方使用点的 z 坐标来定义曲面图&#xff0c;并使用直线连接相邻的点。mesh 和surf 函数以三维形式显示曲面图。 • mesh 生成仅使用颜色来标记连接定义点的线条的线框曲面图。 • surf 使用颜色显示曲面图的连接线和面。 MATL…

实战:Prometheus+Grafana监控Linux服务器及Springboot项目

文章目录 前言知识积累什么是Prometheus什么是Grafana怎样完成数据采集和监控 环境搭建docker与docker-compose安装docker-compose编写 监控配置grafana配置prometheus数据源grafana配置dashboardLinux Host Metrics监控Spring Boot 监控 写在最后 前言 相信大家都知道一个项目…

【ES】笔记-解构赋值

文章目录 一、解构赋值二、解构数组 1. 变量赋值2. 交换变量3. 默认值4. 不完全解构5. 解构数组嵌套6. 与...运算符结合使用 三、解构对象 1. 获取成员2. 对象赋值3. 默认值4. 解构嵌套对象 四、解构函数 1. 函数的参数2. 函数返回值 四、其他解构 1. 字符串3. 其他数据类型 …

19、springboot引用配置属性或引用生成文件的属性或引用随机值

引用配置属性或引用生成文件的属性或引用随机值 ★ 使用占位符引用其他配置属性&#xff1a; 配置文件中可用${}占位符引用已有的属性&#xff0c;被引用的属性可以是&#xff1a; - 已定义的属性。 - 来自其他配置源&#xff08;比如命令行的选项参数、环境变量、系统属性等…

SpringBoot项目上传至服务器

1.服务器安装JDK1.8 通过包管理器安装 2.服务器安装数据库 参考链接&#xff1a; CentOS 7 通过 yum 安装 MariaDB - 知乎 1. 安装之后没有密码&#xff0c;所以需要设置密码&#xff0c;使用下面的语句 set password for rootlocalhost password(111111); 2.在数据库中建…

07_Vue生命周期

Vue3生命周期 配置项的方式写Vue3生命周期 组合式API的方式写生命周期&#xff1a;写在setup里 如果同时用两种方式写生命周期钩子函数&#xff0c;组合式API里边的生命周期要比用配置项写的快一点。 注意&#xff1a;一般用一种方式即可。

概念解析 | MIMO雷达中正交波形设计的概述

注1:本文系“概念解析”系列之一,致力于简洁清晰地解释、辨析复杂而专业的概念。本次辨析的概念是:MIMO雷达中正交波形设计的概述 参考资料:Sun H, Brigui F, Lesturgie M. Analysis and comparison of MIMO radar waveforms[C]//2014 International Radar Conference. IEEE, …

自建类ChatGPT服务:本地化部署与远程访问教程

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

【python】绘图代码模板

【python】绘图代码模板 pandas.DataFrame.plot( )画图函数Seaborn绘图 -数据可视化必备主题样式导入数据集可视化统计关系散点图抖动图箱线图小提琴图Pointplot群图 可视化数据集的分布绘制单变量分布柱状图直方图 绘制双变量分布Hex图KDE 图可视化数据集中的成对关系 好看的图…