mysql数据库事务ACID

ACID是数据库的事务四大基本要素:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)的缩写

 

原子性(Atomicity)

即是数据库一个事务内的sql语句,要么全部成功,要么全部失败

例如老李给胖子转账100元,需求上应该是老李减去100元,胖子加上100元,流水记录是100元,如果老李减去了100元后,事务提交失败,则全部回滚,老李恢复100元(回滚操作在mysql中是通过日志来完成的(undo log))

只有当整个事务全成功了,转账才会完成

 

一致性(Consistency)

数据库事务的一致性是指:在事务执行前和执行后,数据库的数据完整性不被破坏.这个完整性是个抽象的说法,举个例子在老李给胖子转账的事务中,老李-100,胖子+100,数据库中的金钱总数保持了完整性.

刚开始我觉得一致性和原子性有点分不清,后来想明白了,一致性针对的是逻辑上的完整性,而不是操作上的完整性,原子性针对的是操作上的完整性(全部成功或者全部失败)

例如在银行的转账事务中,老李+100,胖子+100,满足了原子性(事务的操作完整),但是违背了一致性(银行转账的一致性要保证金钱总数不变)

 

隔离性(Isolation)

数据库事务有隔离性,让并发的事务一个一个的执行,达到串行的效果.但是这在并发中会很大的影响数据库的性能,所以需要在安全与并发的效率之间寻求一个平衡.后面会具体谈谈隔离性

 

持久性(Durability)

事务提交完成将永久性的改变数据库,即使数据库出错了,也不会丢失数据

反过来可以理解为如果出了严重错误,事务是无法提交完成的,但只要他提交完成就被

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值