数据库事务四大特性-ACID(原子性、一致性、隔离性、持久性)
admin
2024-01-18 05:08:50

事务四大特性

特性简介

事务四大特性主要是:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。

特性详解

原子性(Atomicity)

指事务是一个不可分割的工作单位,一个事务中的操作要么全部执行完成,要么均不执行。

一致性(Consistency)

该特性容易误解为用转账前后金额是否一致的例子来举例!本人认为转账金额例子是基于原子性实现的,并不能用来说明一致性
注意:数据库的状态只有事务提交前的状态和事务提交后的状态,不会出现操作执行了一半时数据就被其他事务读取到的中间状态
即数据库事务的一致性就规定了:
事务提交前后,只存在两种状态,1.事务提交前的状态,2.事务提交后的状态。从一个一致性状态到另一个一致性状态,不会出现中间的过程态。
以上翻译下就是:数据库现在有一个事务C正在执行,对于数据库和当前事务C来说:存在2种事务状态,1-当前事务C提交成功前的数据库状态C1,2-当前事务C提交成功后的数据库状态C2。如果事务C提交成功,则数据库层面由状态C1变换为状态C2;如果事务C执行失败,数据库层面事务C回滚状态还是C1。不论事务C执行时间多长,在数据库层面,事务C提交前后只会存在C1状态和C2状态,不会存在事务C正在执行中的这种中间状态

隔离性(Isolation)

隔离性是基于原子性和一致性的,正因为事物的原子性和一致性,数据库支持多个事务并发的执行,多个事务互不干扰,此即为事务隔离。
但由于多个事务可能操作的对象是同一个资源,故数据库实现事务的隔离性有很多锁方案,如MySQL的四种隔离级别:

  • 读未提交(READ UNCOMMITTED)
  • 读提交 (READ COMMITTED)
  • 可重复读 (REPEATABLE READ)
  • 串行化 (SERIALIZABLE)
    不详述以上,可以参考Mysql数据库的几个特点第一点:事物级别。

持久性(Durability)

指事务一旦提交,对数据库中数据的改变就是永久性的,接下来即使数据接发生故障也不应该对其有任何影响。

相关内容

热门资讯

原创 夏... 夏天湿热重、脾胃易虚寒,这4道汤健脾祛湿、暖胃护胃、清热不伤阳,适合连续两个月常喝,步骤清晰、做法简...
明日四月十六,记得“吃4样,做... 明日农历四月十六,记得“吃4样,做1事”五谷丰登迎福气,老传统别丢! 时光如梭,转眼间来到了农历四月...
今年目标全国销售网点突破200... 5月16日下午6点,贵阳市吾茶白·贵茶潮饮烘焙概念店里排起小队。 “就要这款,上次喝完一直惦记着。”...
原创 淄... 很多人认识淄博只靠烧烤但真正撑起淄博饮食底蕴的从来不是网红热度而是一代代扎根老城的老字号烟火。这些老...
原创 夏... “赤日炎炎似火烧”,这话一到夏天,可算是说到大家心坎里去了。天热起来,不光人没精神,连胃口也跟着变差...