概念:逻辑上的一组操作,该组操作不可分割,要么全部成功,要么全部失败。
事务的四大特性:原子性、一致性、隔离性、持久性。
原子性:指事务不可分割,要么全部成功,要么全部失败;不可能说一半成功一半失败;就好像物理上的原子一样,已经是最小 单位,不能再分割了。
一致性:指事务操作前后数据的完整性。比如说张三有200块,李四有200块,然后张三转100块给李四,那么李四就有300,而张三只有100了,但是操作的前后张三和李四总金额有400,这个是不变的。这个就是一致性了。
隔离性:这是指并发的情况下,多个事务同时进行操作,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致(通过事务的隔离级别)。比如在A、B之间转帐时,C同时向A转帐,若同时进行则A、B之间的一致性不能得到满足。所以在A、B事务执行过程中,其他事务不能访问(修改)当前相关的数值。
持久性:事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失。
事务的安全问题:
脏读:事务A读取到事务B未提交的数据。比如说:事务A中的账户中有1000块,然后取出了100块,剩余900,此时事务B读取事务A中的账户余额为900,随后事务A撤销的取100块的操作,那么事务B读取到的就是脏数据了。这个就是脏读。
幻读:
不可重复读:
事务的隔离级别:
1.READ_UNCOMMITTED
2.READ_COMMITTED
3.REPEATABLE_READ
4.SERIALIZABLE
事务的传播行为:
PROPAGATION_REQUIRED: 支持当前事务
PROPAGATION_SUPPORTS:
PROPAGATION_MANDATORY:
PROPAGATION_REQUIRES_NEW:
PROPAGATION_NOT_SUPPORTED:
PROPAGATION_NEVER:
PROPAGATION_NESTED:
持续更新中。。。。