MySQL系列: undo和redo工作原理

ACID

首先来讨论事务的四大特性ACID

  • 原子性(Atomicity):事务作为一个整体来执行,要不都执行,要不都不执行

  • 一致性(Consistency):事务必须保证数据库从一个一致状态转移到另一个一致状态。不能破坏关系数据的完整性以及业务逻辑的一致性。

    完整性一般就是数据的域完整性、实体完整性以及参照完整性。域完整性始址我们在创建表的时候指定的数据类型,输入限制。实体完整性规定我们的记录必须唯一,也就是说一个记录中必须存在一个或者多个字段唯一标示这一条记录。参照完整性则一般对应于关系表之间的关系,保证主键和外键之间的参照关系。不能因为执行事务儿破坏数据的完整性。

    逻辑业务一致性举个例子。再银行转账操作中,a、b初始值1000,a像b转100,但是不能因为我们的事务操作使得b只收到了50。事务要保证业务操作中我们的业务一致性不能乱。

  • 隔离性(Isolation):多个事务并发的时候,一个事务执行的时候不会影响另一个事务。

  • 持久性(Durability):已被提交的事务必须保存再数据库中。

 

Undo(历史数据,提交前持久化,修改前写入,保证原子性)

undo日志到底做了什么

undo日志会记录事务执行过程中,每次修改的数据的原始值。

x =5,y  = 8
t1 begin://undo日志记录x=5x = x- 1;//undo日志记录y=8y = y-2;//事务执行临近结束,将undo日志写入到磁盘//将数据写入到磁盘
commit

我们都知道,事务是具有原子性的要不全做,要不全部做。可到底是什么机制协助了数据库

undo日志就可以保证数据库事务操作的原子性,从上面的流程我们可以得知每次进行事务修改之前,都会吧未修改之前的值存储到undo日志中,当然再提交的时候也是先将undo写到磁盘,再把修改后的数据写到磁盘。倘若再undo写入磁盘之前发生了异常,根本就不需要做任何操作,这时候事务是被认为执行失败的,也不需要回滚,因为undo日志没有写入磁盘,数据库被认为处于没有执行事务的状态。若再数据写入磁盘的时候发生故障,则可以根据undo日志进行回滚。

整个过程下来起码实现了原子性以及持久性

undo操作的特点总结如下:

  1. 在更新数据前把数据记录到undo操作
  2. 持久性,只要数据提交则必定保存到了数据库
  3. undo log必须先于数据持久化到磁盘,这样的话若数据写入磁盘或者进行commit是出错,可以根据undo日志进行回滚
  4. 若事务再undo持久化之前出错,则数据库中的数据还保持在事务之前的状态。undo日志中也没有相应的记录,不需要回滚

当然undo的缺陷也很明显,他需要提交一次undo日志到磁盘,和一次数据到磁盘。io次数过多,性能太低。

Redo(新数据,提交前持久化,修改后写入,保证持久性)

redo的出现

为了解决undo性能过低的问题,就引入了redo

redo与undo正相反,他记录的是新数据的备份。并且事务在提交的时候只需将redo日志持久化到磁盘即可,数据可以根据redo日志异步的持久到磁盘。当发生异常的时候,只要redo

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

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

相关文章

robomaster裁判系统服务器,2018裁判系统调试组网完全攻略

1.jpg (52.6 KB, 下载次数: 3)2018-4-15 21:49 上传接下来是几个比较容易弄混淆的点:主服务器程序将会同时监听机器上所有的 IP 地址,所以请保证机器上已经设置了 192.168.0.8 和 192.168.1.2 两个 IP ;学生自定义数据的链路是主控板通过串口…

APP技巧:推荐6款超级实用的APP软件,赶快下载试试吧

目录 01*ONE一个 02*智能修复老照片 03*实用工具箱 04*李跳跳 05*Alook 06*CCleaner 今天小编给大家6款超级实用的App软件,大家赶快下载试试吧。 01*ONE一个 推荐理由:简约的新媒体阅读平台。 生活中往往有太多的碎片化时间,比如等公交、上厕…

《Note --- Unreal 4 --- Sample analyze --- StrategyGame(continue...)》

《Note --- Unreal 4 --- Sample analyze --- StrategyGame(continue...)》 -------------------------------------------------------------------------------------------------------------------------------------------------------------------…

Mysql快照读和当前读

快照读 读取的是记录数据的可见版本(可能是过期的数据),不用加锁 当前读 读取的是记录数据的最新版本,并且当前读返回的记录都会加上锁,保证其他事务不会再并发的修改这条记录   概念说的比较虚,也不好理…

网络知识:快速了解IP地址的概念以及IPV4和IPV6的区别!

‍‍小伙伴们看到上面的机房了吗?成千上万台服务器他们都少不了一个小小的IP地址,每台服务器都配置了一个或多个IP。今天电脑学习微信公众号小编就带大家详细了解下IP地址都是什么?IP地址(Internet Protocol Address)是…

手机投屏到电视,1分钟就能学会,无需下载任何软件,太实用了

生活中,我们玩手机的时候经常看到一些好玩的东西,想分享给亲人,朋友们一起看,无奈手机屏幕太小,大家凑一起看不方便,效果也不好。 如果能把好玩的东西投屏到电视上,那这个问题就迎刃而解了&…

联想计算机BIOS开启Intel-vx,如何在计算机BIOS或UEFI固件中启用Intel VT-x | MOS86

现代CPU包括硬件虚拟化功能,可帮助加速在VirtualBox,VMware,Hyper-V和其他应用程序中创建的虚拟机。但是这些功能都是虚拟机是美好的事情。使用虚拟化应用程序,您可以在当前系统的窗口中运行整个虚拟机。在该虚拟机中,…

Linux操作系统安装字体笔记

从事Java程序员的朋友们都知道,大多数客户的应用都是部署在Linux操作系统的服务器上面,因为Linux服务器比Windows服务器成本要低、系统运行更加稳定。但它也有自己不足之处,比如在系统上导出pdf等文档时候,如果有中文字符的话&…

地磁室内导航定位

宋镖《基于惯导辅助地磁的手机室内定位系统设计》 转载于:https://www.cnblogs.com/2008nmj/p/6241917.html

mysql事务的 四个特征(ACID)

事务的 四个特征(ACID) 事务具有四个特征:原子性( Atomicity )、一致性( Consistency )、隔离性( Isolation )和持续性( Durability )。这四个特…

foxmail连接163邮箱服务器,消除Foxmail无法登录163邮箱顽疾

用手机号申请了163免费邮箱,在网页端或手机网易邮箱客户端可以正常登录,但在电脑Foxmail客户端中,按相同的邮件服务器进行设置,显示密码不正确。难道163邮箱已经不支持PC中的Foxmail客户端了吗?让我们一同探究解决之道…

网络知识:水晶头网线和网线插座接法制作过程介绍

今天小编给大家分享水晶头网线和网线插座的制作过程,有需要的朋友可以收藏一下!家庭网线插座接法详解我们这里所说的网线插座,正确的叫法应该是网线模块,一般应用在室内的墙壁上作为网线插孔。现在家庭中使用的一般都是双绞线&…

Arduino 极速入门系列 - 光控灯(3) - 光敏电阻、与电阻分压那些事

继续是讲解基础原理,新手专用部分。这次讲光敏电阻,和用电阻分压。光电元器件有好几种,其中测光相关的元器件,常见的有光敏三极管和光敏电阻,我们这次光控灯用光敏电阻。在我们光控灯里面,将会使用它搭建出…

Mysql的四种隔离级别

Mysql的四种隔离级别 SQL标准定义了4类隔离级别,包括了一些具体规则,用来限定事务内外的哪些改变是可见的,哪些是不可见的。低级别的隔离级一般支持更高的并发处理,并拥有更低的系统开销。 Read Uncommitted(读取未提…

配置文件服务器实训报告,文件服务器的配置实训报告

文件服务器的配置实训报告 内容精选换一换本章节适用于MRS 3.x之前版本。Loader支持以下多种连接,每种连接的配置介绍可根据本章节内容了解。obs-connectorgeneric-jdbc-connectorftp-connector或sftp-connectorhbase-connector、hdfs-connector或hive-connectorOBS…

操作系统:UNIX、Linux、IOS、Android之间的渊源

UNIX简化形成了Linux;Linux则是Android的内核;而苹果则是使用UNIX系统作为ios和macos的内核。几个系统出现的时间UNIX系统的诞生1969年,贝尔实验室的研究员肯•汤普森,编写了一款计算机游戏Space Travel,先后在多个系统…

正则表达式小试牛刀

闲来无事,打开以前找工作时打印出的资料,说面试官怎么考正则表达式呢?实际问题:比如你进了我们组工作,我们组老大对代码的格式要求很严格,要求左右小括号前后都有空格(仅仅举例)。那…

常见数据库管理系统

常见数据库管理系统

xp修改时间同步服务器地址,xp时间同步服务器地址更换

xp时间同步服务器地址更换 内容精选换一换切换操作会改变保护组的容灾方向,将生产站点可用区的业务切换到容灾站点可用区,容灾站点可用区的业务切换到生产站点可用区。切换后数据同步不中断,容灾方向更改为从容灾站点到生产站点。您可以针对生…

APP技巧:电脑登录微信,要删除这5个文件,否则别人能查看聊天记录

在办公的电脑上,你会登录微信吗? 如果你有登录,那么就得注意了,电脑端微信有一个名为“保存聊天记录”的功能,通过它我们可查看到跟微信好友之间发送的图片、视频、文件等数据! 既然知道这么危险&#xff0…