赞
踩
事务四大特性主要是:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。
指事务是一个不可分割的工作单位,一个事务中的操作要么全部执行完成,要么均不执行。
该特性容易误解
为用转账前后金额是否一致的例子来举例!本人认为转账金额例子是基于原子性
实现的,并不能用来说明一致性
!
注意:数据库的状态只有事务提交前的状态和事务提交后的状态,不会出现操作执行了一半时数据就被其他事务读取到的中间状态
。
即数据库事务的一致性就规定了:
事务提交前后,只存在两种状态,1.事务提交前的状态,2.事务提交后的状态。从一个一致性状态到另一个一致性状态,不会出现中间的过程态。
以上翻译下就是:数据库现在有一个事务C正在执行,对于数据库和当前事务C来说:存在2种事务状态,1-当前事务C提交成功前的数据库状态C1,2-当前事务C提交成功后的数据库状态C2。如果事务C提交成功,则数据库层面由状态C1变换为状态C2;如果事务C执行失败,数据库层面事务C回滚状态还是C1。不论事务C执行时间多长,在数据库层面,事务C提交前后只会存在C1状态和C2状态,不会存在事务C正在执行中的这种中间状态
。
隔离性是基于原子性和一致性的,正因为事物的原子性和一致性,数据库支持多个事务并发的执行,多个事务互不干扰,此即为事务隔离。
但由于多个事务可能操作的对象是同一个资源,故数据库实现事务的隔离性有很多锁方案,如MySQL的四种隔离级别:
指事务一旦提交,对数据库中数据的改变就是永久性的,接下来即使数据接发生故障也不应该对其有任何影响。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。