spring事务以及事务嵌套

Spring事务基本知识点

事务的ACID

事务是区分文件存储系统与NoSql数据库重要特性之一,其存在的意义是为了保证即使在并发情况下也能正确的执行crud操作,怎样才算是正确的呢?这时提出了事务需要保证的四个特性ACID:

  • A:原子性(atomicity)

    • 事务中各项操作,要么全做要么全不做,任何一项操作的失败都都会导致整个事务的失败;
  • C:一致性(consistency)

    • 事务结束后系统状态是一致的;
  • I:隔离性(isolation)

    • 并发执行的事务彼此无法看到对方的中间状态;
  • D:持久性(durability)

    • 事务完成后所做的改动都会被持久化,即使发生灾难性的失败;

    在高并发的情况下,要完全保证其ACID特性是非常困难的,除非把所有的事务串行化执行,但带来的负面的影响将是性能大打折扣。很多时候我们有些业务对事务的要求是不一样的,所以数据库中设计了四种隔离级别,供用户基于业务进行选择。

事务隔离级别

在高并发的场景下会出现的事务问题如下

Dirty Reads 脏读:
事务A正在对数据进行更新操作,但是更新还未提交,事务B

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值