数据库事务的ACID

本文介绍了数据库事务的ACID特性,包括原子性、一致性、隔离性和持久性,并通过转账案例进行解释。此外,文章还探讨了Seata分布式事务的概念,强调其在保证微服务中数据一致性的关键作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1. 复习总结

2. seata 分布式事务布

3. 参考资料


1. 复习总结

  • 1、事务定义

事务是代表一个或者一系列操作的最小逻辑单元,单元内的所有操作要么都成功、要么都失败,不存在中间状态。

  • 2、事务机制存在的目的(数据最终的一致性)

就是无论我们的操作过程中是成功、失败、异常、或是受到干扰的情况下,事务都能保证我们数据最终的一致性。

  • 3、举一个事务的案例(转账)

案例:转账(以下事务中包含3个逻辑操作)

A账户余额有1000元,B账户余额0元,在这个基础上A向B转账400元,流程如下:
1、查询A账户余额,看金额是>=400元。
2、满足条件则先从A账户扣款400元(当前A余额=600、B当前余=0)。
3、然后再向B账户增加400元(当前A余额=600、当前B余额=400)。

  • 4、事务的特性(ACID)

原子性(tomicty):对应到上面的转账操作中,原子性就代表(检查余额、转账、到账)三个步骤就是一个整体
一致性(Consistency):数据最终的一致性
隔离性(Isolation):隔离性是说两个事务的执行都是独立隔离开来的,事务之间不会相互影响,多个事务操作一个对象时会以串行等待的方式保证事务相互之间是隔离的
持久性(Durability):事务一旦成功,修改的数据都会被持久化,不会因为异常、宕机而造成数据错误或丢失。

一致性是目的,其他3个都是为实现一致性要做的事情。

 


2. seata 分布式事务布


定义:一次大的操作有多个小操作组成,这些小操作分布在不同的服务器上,分布式事务要保证所有小操作要么全部成功、要么全部失败。
本质上:分布式事务就是为了保证不同数据库的数据一致性(因位微服务中,每一个服务有独立数据源的思想)。因此服务拆分后,必定涉及到分布式事务
 


3. 参考资料

(1)数据库事务ACID https://zhuanlan.zhihu.com/p/27789602

(2)seata 分布式事务布 https://mp.weixin.qq.com/s/hZRk458Nf_vdIPy-425jgQ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值