事物中的ACID四性
程序员文章站
2024-02-01 15:43:40
...
事务的四大属性ACID即事务的 原子性(Atomicity)、一致性(Consistency)、隔离性 (Isolation)、持久性(Durability).。 1,最容易困惑的是原子性和一致性,先谈这俩: 原子性:事务的原子性指的是,事务中包含的程序作为数据库的逻辑工作单位,它所做的
事务的四大属性ACID即事务的原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability).。
1,最容易困惑的是原子性和一致性,先谈这俩:
原子性:事务的原子性指的是,事务中包含的程序作为数据库的逻辑工作单位,它所做的对数据修改操作要么全部执行,要么完全不执行。
有朋友会问,那我保证了原子性,不就可以保证一致了么?这里的关键区别在于,事务的操作边界定义。对于一直事务里有哪些操作,这个是自定义的,而一致性是针对业务逻辑本身而言的。比如你定义一个事务,里面的操作是A,B,C三步,系统原子性能保证的是这三步要么都执行,要么都不执行,不可拆分。但是有可能你这三部破坏了数据的一致性,比如你定义了从A账户划拨200块给B账户。如果你的事务里只包含从A账户扣款,而不包含B账户加钱。那么系统保证原子性后,能保证要么从A账户都扣款成功,要么都不成功,不会出现扣了一半款之类的异常情况。但是没办法保证B账户加钱了。所以A账户扣款,B账号加钱,这是一个连续的动作,业务逻辑上要保证一致性,所以必须把两个步骤放在一个事务里,这样才能保证一致性。
换而言之,原子性是系统能够提供的功能,而一致性是根据业务逻辑,有用户自定义事务的边界来保证的。两者缺一不可。
2,隔离性
事务的隔离性是多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作数据所干扰,多个并发事务之间要相互隔离。
3,持久性
持久性是指一个事务一旦被提交,它对数据库中数据的改变就是永久性的,接下来即使数据库发生故障也不应该对其有任何影响。
上一篇: PHP 编码规范(11)_PHP教程
推荐阅读
-
事物中的ACID四性
-
PHP中round()函数对浮点数进行四舍五入的方法
-
SQL语句练习实例之四 找出促销活动中销售额最高的职员
-
试编制一个程序,把Ax中的16进制数转换为ASCII码,并将对应的ASCII码依次存放到MEM数组中的四个字节中
-
codeigniter中实现一次性加载多个view的方法,codeigniterview_PHP教程
-
php中的四舍五入函数代码(floor函数、ceil函数、round与intval)
-
触发器在保证数据库完整性和一致性中的应用
-
【貌似有挑战性】shell怎么获取php中return的值
-
网络营销效果监控策略在整个流程中的重要性
-
理解反射(四)类中的成员方法的反射