数据库事务复习

数据库事务四大特性 ACID

  • Atomicity 原子性:事务所包含的操做是所有成功,或者所有失败回滚。
  • Consistency 一致性:事务先后数据从一个一致性状态变到另外一个一致性状态。
  • Isolation 隔离性:事务和事务之间要隔离
  • Durability 持久性:事务提交以后,要保证数据不会由于断电等问题致使改变。

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

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

  2. 不可重复读 一个事务内屡次读取受到另一个事务已经提交的数据。一个事务内屡次读取一个数据不一致。由于另一个事务提交致使数据变化。spring

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

数据库隔离级别:

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

spring传播机制6个

  • requeried 支持当前事务,若是当前没有事务,则新建事务。数据库

  • supports 支持当前事务,若是当前没有事务,则不新建事务。并发

  • mandatory 支持当前事务,若是当前没有事务,则抛出异常。排序

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

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

  • never 若是有事务则抛出异常it

  • nested 若是存在事务,新起事务做为子事务。上面事务完成才能提交。若是不存在事务,则新起一个事务,io

相关文章
相关标签/搜索