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:以非事务执行,如果当前存在事务,则抛出异常

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值