mysql事务和spring事务传播类型
1.事务特性ASID
1)A原子性:事务中的操作要么全部执行要么全部不执行(执行中有异常会回滚事务前状态)
2)S一致性:事务执行完毕后数据要保持一致
举例:事务执行前A、B的存款都是100,事务内容是A转账B,则事务执行完成之后,需要满足A和B的存款和还是200。
3)隔离性:不同的事物之间不会干扰
4)持久性:事务一旦提交,对数据库中数据是永久性的。
2.脏读、不可重复读、幻读
1)脏读:一个事务处理过程中,读取了另一个事务还未提交的数据。
2)不可重复读:一个事务处理过程中,对同一数据的多次查询得到不同的结果,这是由于另一个事务在多次查询间隔修改了这个数据。
3)幻读:一个事务处理过程中,读取了另一个事务新增的数据。
3.四种事务隔离级别
1)读未提交:一个事务可以读取到另外个还未提交的数据
产生问题:脏读、不可重复读、幻读
2)读已提交:一个事务可以读取到另外个已提交的数据
产生问题:不可重复读、幻读
3)可重复读:一个事务能够对同一记录进行重复性修改和读取,读取的数据始终一致(MySql的`默认事务隔离级别)
产生问题:幻读
4)串行化:多个事务以串行化
Serializable的方式运行,自然不会产生并发事务问题。
产生问题:效率特别低。
4.spring的7种事务传播机制
1) required :如果当前没有事务,就创建一个新事务,如果当前存在事务,就加入该事务,该设置是最常用的设置。
2)required_new : 无论当前有没有事务都会创建一个新事物
3)nested :如果当前存在事务则在嵌套内事务执行,如果没用则创建一个新事务
4)supports :如果当前存在事务,则加入该事务,如果没有事务则以非事务执行
5)not_supports :以非事务执行,如果当前存在事务,则把事务挂起
6)mandatory :如果当前存在事务,则加入该事务,如果没有则抛出异常
7)never:以非事务执行,如果当前存在事务,则抛出异常
- 转:Spring TransactionDefinition中事务传播的类型
- spring事务传播行为类型的常量含义(翻译)
- Spring的 事务传播行为类型
- Spring 事务传播Propagation类型
- Spring的7种事务传播行为类型
- Spring7种事务传播行为类型
- Spring事务传播类型
- spring事务传播类型
- Spring事务配置和事务传播类型
- Spring7种事务传播行为类型--PROPAGATION_REQUIRED及其他6种事务传播行为种类
- spring事务传播行为类型
- Spring事务传播行为7种类型 --- 看一遍就能记住!
- spring中事务的传播行为类型和和说明
- Spring 事务传播类型
- [转帖]Spring事务,传播行为类型PROPAGATION_REQUIRED
- 浅析Spring事务传播行为和隔离级别
- spring的4种事务特性、4种隔离级别、7种传播行为
- spring 事务传播行为实例分析
- Spring事务属性和事务传播行为
- Spring事务的传播和隔离级别