mysql事务的一致性理解(三大属性+用户配合)

目录

事务的一致性

理解

三大属性

用户配合 


事务的一致性

理解

三大属性

一致性不是技术层面上一个概念,而是使用层面上的

  • 一致性 -- 数据库只包含事务成功提交的结果 / 系统运行发生中断,某个事务完成到一半被迫中断,从而自动回滚,回到初始状态

而回滚的操作是因为原子性才引入的

  • 所以保证原子性的同时,也间接维护了数据的完整性和一致性

事务中另外三个属性,都是围绕着[保证数据库的一致性]展开的

  • 假设没有持久性,你钱也花了票也买了,结果系统一重启订单消失了
  • 这样无法保证数据的一致性
  • 所以,在技术层面上,我们的目的就是通过AID保证C

只要有了三大属性,就可以保证用户在使用时,数据库所有的行为都是可预测的 -- 一致性

用户配合 

mysql对一致性提供了技术支持,但一致性还是需要用户业务逻辑做支撑

  • 一致性由用户决定

因为本身数据库中的事务就是为了给用户服务而被设计出来的

  • 数据库只是个工具,完全由工具维护一致性,有点太难为它了
  • 只有技术并不能完全保证一致性

假设有个程序员负责转账,但它只写扣钱,不写加钱的sql,然后交给mysql

  • 这样就导致数据不一致,钱直接消失了
  • 但这也不是mysql的错,它只是个跑腿的

所以,一致性需要用户配合,得保证写出来的事务是对的,是完整的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值