数据库事务复习

本文详细介绍了数据库事务的四大特性ACID(原子性、一致性、隔离性和持久性),并探讨了不同隔离级别如何解决脏读、不可重复读及幻读等问题。同时,还概述了Spring事务管理的六种传播行为。

数据库事务四大特性 ACID

  • Atomicity 原子性:事务所包含的操作是全部成功,或者全部失败回滚。
  • Consistency 一致性:事务前后数据从一个一致性状态变到另一个一致性状态。
  • Isolation 隔离性:事务和事务之间要隔离
  • Durability 持久性:事务提交之后,要保证数据不会因为断电等问题导致改变。

事务不进行隔离会产生的问题:

  1. 脏读。 一个事务读取到另外一个还未提交的事务的数据

  2. 不可重复读 一个事务内多次读取受到另外一个事务已经提交的数据。一个事务内多次读取一个数据不一致。因为另外一个事务提交导致数据变化。

  3. 一个事务内读到另外事务插入的数据 读取表的行数,受到另外一个事务影响!!

数据库隔离级别:

  1. read uncommitted 读未提交 可以读到未提交的事务数据
  2. read committed 读已提交 解决脏读问题 可以读到已提交的事务数据
  3. repeatable read 可重复读
    解决不可重复读问题 mysql默认,InnoDB通过MVCC多版本并发控制解决幻读问题
  4. serializable 可串行话
    解决幻读问题 强制事务排序执行

spring传播机制6个

  • requeried 支持当前事务,如果当前没有事务,则新建事务。

  • supports 支持当前事务,如果当前没有事务,则不新建事务。

  • mandatory 支持当前事务,如果当前没有事务,则抛出异常。

  • requeried_new 挂起当前事务,以新事务运行

  • not_support 挂起事务,以非事务运行

  • never 如果有事务则抛出异常

  • nested 如果存在事务,新起事务作为子事务。上面事务完成才能提交。如果不存在事务,则新起一个事务,

转载于:https://my.oschina.net/u/2250599/blog/1836849

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值