2021-05-23-事务的ACID特性

事务的ACID特性是数据库管理系统中确保操作正确性的核心原则。原子性保证操作不可分割,一致性确保数据状态一致,隔离性防止并发操作干扰,持久性则保证提交的更改永久保存。这些特性在银行转账等场景中至关重要,确保了数据的准确性和系统稳定性。

事务的ACID特性

1、什么是事务

事务是指满足ACID特性的一组操作,这组操作要么全部成功,要么全部失败。

举个简单的例子,小张给小明转账100块钱,这个转账会包含两个操作:

1、将小张的余额减少100块;

2、将小明的余额增加100块。

事务会将上述两个操作看作一个整体,1和2必须都成功或者都失败。

2、ACID特性

2.1、原子性(Atomicity)

事务是不可分割的最小单元,事务的所有操作要么全部提交成功,要么全部失败回滚。

回滚可以用Undo Log来实现,回滚日志记录着事务所执行的修改操作,在回滚时反向执行这些修改操作即可。

2.2、一致性(Consistency)

在事务执行前后,数据都保持一致性状态。在一致性状态下,所有事务对同一个数据的读取结果都是相同的。

例如转账业务中,无论事务是否成功,转账人和收款人的总金额不变。

2.3、隔离性(Isolation)

一个事务所做的修改在最终提交以前,对其它事务是不可见的。

也就是说,并发访问数据库时,一个用户的事务不被其他事务所干扰,各并发事务之间数据库是独立的。

2.4、 持久性(Durability)

一旦事务提交,则其所做的修改将会永远保存到数据库中。即使系统发生崩溃,事务执行的结果也不能丢失。

系统发生崩溃可以用Redo Log进行恢复,从而实现持久性。与回滚日志记录数据的逻辑修改不同,重做日志记录的是数据页的物理修改。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

草莓森明

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值