金华网站建设公司哪家好,专业集团网站建设,ps制作网页,查看wordpress版本对应的php#x1f680; 分布式事务 #x1f680; #x1f332; AI工具、AI绘图、AI专栏 #x1f340; #x1f332; 如果你想学到最前沿、最火爆的技术#xff0c;赶快加入吧✨ #x1f332; 作者简介#xff1a;硕风和炜#xff0c;CSDN-Java领域优质创作者#x1f3c6;… 分布式事务 AI工具、AI绘图、AI专栏 如果你想学到最前沿、最火爆的技术赶快加入吧✨ 作者简介硕风和炜CSDN-Java领域优质创作者保研|国家奖学金|JAVA开发技术栈|面试刷题|面经八股文|经验分享|好用的网站工具分享 恭喜你发现一枚宝藏博主,赶快收入囊中吧 人生如棋我愿为卒行动虽慢可谁曾见我后退一步 分布式事务 目录 一.分布式事务之本地事务 1.1 本地事务 - ACID原则 1.2 本地事务 - 事务日志undo和redo 1.2.1 事务日志 - undo log日志 1.2.2 事务日志 - redo log日志 1.2.3 总结 二.总结 三.共勉 一.分布式事务之本地事务 1.1 本地事务 - ACID原则 本地事务是指传统的单机数据库事务必须具备ACID原则 原子性A 所谓的原子性就是说在整个事务中的所有操作要么全部完成要么全部不做没有中间状态。对于事务在执行中发生错误所有的操作都会被回滚整个事务就像从没被执行过一样。 一致性C 事务的执行必须保证系统的一致性在事务开始之前和事务结束以后数据库的完整性没有被破坏就拿转账为例A有1000元B有1000元如果在一个事务里A成功转给B500元那么不管发生什么那么最后A账户和B账户的数据之和必须是2000元。 隔离性I 所谓的隔离性就是说事务与事务之间不会互相影响一个事务的中间状态不会被其他事务感知。数据库保证隔离性包括四种不同的隔离级别 Read Uncommitted读取未提交内容Read Committed读取提交内容Repeatable Read可重读Serializable可串行化 持久性D 所谓的持久性就是说一旦事务提交了那么事务对数据所做的变更就完全保存在了数据库中即使发生停电系统宕机也是如此。
总结在传统项目中项目部署基本是单点式即单个服务器和单个数据库。这种情况下数据库本身的事务机制就能保证ACID的原则这样的事务就是本地事务。 1.2 本地事务 - 事务日志undo和redo 单个服务与单个数据库的架构中产生的事务都是本地事务。其中原子性和持久性其实是依靠undo和redo 日志来实现。
InnoDB的事务日志主要分为: undo log(回滚日志提供回滚操作) redo log(重做日志提供前滚操作) 1.2.1 事务日志 - undo log日志 undo log的原理很简单为了满足事务的原子性在操作任何数据之前首先将数据备份到undo Log日志中,undo Log 记录了此次事务开始前的数据状态;。然后进行数据的修改。如果出现了错误或者用户执行了ROLLBACK语句系统可以利用Undo Log中的备份将数据恢复到事务开始之前的状态。
undo log 作用
实现事务原子性,可以用于回滚实现多版本并发控制MVCC
undo log 原理 undo log 产生和销毁
undo log在事务开始前产生当事务提交之后undo log 并不能立马被删除而是放入待清理的链表会通过后台线程 purge thread 进行回收处理
总结undo Log属于逻辑日志记录一个变化过程。例如执行一个updateundo log会记录一个相反的update执行一个deleteundo log会记录一个insert 1.2.2 事务日志 - redo log日志 Redo Log记录的是新数据的备份。在事务提交前只要将Redo Log持久化即可不需要将数据持久化减少了IO的次数。
Redo Log: 记录了此次事务**「完成后」** 的数据状态;
Redo log的作用
MySQL实例挂了或宕机了重启时InnoDB存储引擎会使用redo log恢复数据保证数据的持久性与完整性。
Redo Log 的工作原理 1.2.3 总结 undo log 记录更新前数据用于保证事务原子性 redo log 记录更新后数据用于保证事务的持久性 redo log 写入到buffer缓冲区事务提交时写入磁盘 redo log 持久化到了硬盘之后事务可提交 redo log会在事务提交之前或者redo log buffer满了的时候写入磁盘 数据写入到内存的redo log日志文件中不过为了避免出现内存中与磁盘数据不一致的情况事务提交后也会将内存数据刷入磁盘 二.总结 本篇文章主要讲解了本地事务的ACID特性以及undo log日志和redo log日志的基本概念以及原理后续为大家讲解分布式事务更多的内容大家敬请期待呦 三.共勉
最后我想和大家分享一句一直激励我的座右铭希望可以与大家共勉