事务相关知识

2019-02-12  本文已影响0人  花无缺_0159

1什么是事务:

简单说就是把多条数据库操作捆绑到一起执行,要么都成功,要么都失败。

2事务的原则ACID:

  1. 原子性:事务包含的所有操作,要么全部成功,要么全部失败回滚,成功全部应用到数据库,失败不能对数据库有任何影响;
  2. 一致性:事务在执行前和执行后必须一致;例如A和B一共有100块钱,无论A、B之间如何转账,他们的钱始终相加都是100;
  3. 隔离性:多用户并发访问同一张表时,数据库为每一个用户开启新的事务,该事务不能被其他事务所影响,相互有隔离;
  4. 持久性:一个事务一旦提交,则对数据库中数据的改变是永久的,即便系统故障也不会丢失;

3 并发可能引起的问题:

  1. 脏读:一个事务读取到另一个事务未提交的数据;
  2. 不可重复读:一个事务读取到另一个事务已提交(Update操作)的数据,导致前后读取不一致;
  3. 幻读(虚读):一个事务中读取到别的事务插入(Insert操作)的数据,导致前后读取不一致;

4 事务的隔离级别:

  1. Serializable串行化:可避免脏读、不可重复读和幻读;
  2. Repeatable read可重复读:可避免脏读、不可重复读;(MySql默认值)
  3. Read committed读已提交:可避免脏读;
  4. Read uncommitted读未提交:任何情况都无法保证;
上一篇下一篇

猜你喜欢

热点阅读