事务一致性与原子性的区别

发布于 2022-09-03 08:01:47 字数 238 浏览 17 评论 0

对于事务一致性的理解不是很到位。
网上大体的回答是从一个状态到另一个状态,举例也都是张三给李四转100块钱,那么保证张三和李四的总和不变就是一致性。初步判断这个举例有些牵强,例如,有一种业务逻辑,张三需要从账户中减掉100,而李四只会从账户中增加60,只要保证这两个同时成功,也叫一致性吧。
还有文章说保证开始状态和终态中的约束之类的一致,就是一致性。
总是感觉这两种解释都有些牵强,请问事务的一致性侧重点是什么,与原子性的区别在哪里,非常感谢

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

一花一树开 2022-09-10 08:01:47

参考了很多文章,终于搞清楚了,谢谢各位
事务隔离级别浅析

舞袖。长 2022-09-10 08:01:47

其实一致性和原子性在事务里是两个不太相关,但又很相关的逻辑来的
原子性:这个侧重点是事务执行的完整,一套事务下来,如果有一个失败,那整体失败。也就是要么大家一起成功,要么全都回滚

一致性:这个讲的是事务是按照预期生效的,也就是你举例的那个转账的,一致性的核心一部分是靠原子性实现的,而另一部分是逻辑实现。

举个栗子吧:
转账:张三给李四转账100元。那数据库假设需要 张三扣100,李四加100,记录一条流水。
如果流水没记录成功,那整体回滚,张三也没转账成功,李四也没多钱。这就是原子性的体现。

而张三必须扣100,李四必须加100,这个就是一致性了,如果因为某些逻辑原因,导致张三扣了100,流水记录100转账,而李四只加了60。然后这3条操作都成功了,那原子性就符合了,但是一致性就不符合了~~~

其实在实际应用中肯定不是这么简单的例子的。往往是类似,买东西扣库存这类的逻辑,主表里有库存,库存表里有库存,SKU表里还有,然后就因为设计缺陷,就算加了事务还是出现了超卖、SKU库存对不上总库存的问题。。这个就是一致性不满足的了。

紙鸢 2022-09-10 08:01:47

原子就是最小的..吗
状态1到2不存在1.5
要保证一致性必须要求不存在1.5,所以他是依赖于原子性
..
一致性这个名字我不是很理解,不过看他们的解释很符合能量能量守恒的概念

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文