Mysql 事务隔离级别要解决的问题

  • 事务的特性
    事务并不等同于ACID, 事务只是一个程序的执行单元?!是一个操作的集合?!
    在权衡[隔离]和[并发]操作,定义了四个事务的隔离级别和不同的副作用。
    这四个隔离级别分别是:
  1. 未提交读
  • 连基本的脏读问题都解决不了,很少使用。
  1. 已提交读
  • 不可重复读,在一个事务中,前后读取的数据信息可能不一致,也是破坏了数据一致性。
  1. 可重复读
  • 重点介绍,也是MYSQL innodb引擎默认的隔离级别。不同数据库的默认隔离级别也可能不相同。
  1. 串行化
  • 多个事务操作,排队执行,类似于单线程操作,性能极差。很少使用。

  1. 一致性
  2. 隔离性
  3. 原子性
  4. 持久性

  • 事务隔离级别要实际解决的问题
  1. 脏读
    脏读指的是读到了其他事务未提交的数据,未提交意味着这些数据可能会回滚,也就是可能最终不会存到数据库中,也就是不存在的数据。读到了不一定最终存在的数据,这就是脏读。
  2. 幻读?存疑?!
    A事务在本次事务中,对自己未操作过的数据进行了多次查询,第一次读取时的数据不存在,第二次读取时,记录出现了。(破坏了一致性,insert)。
  3. 不可重复读
    A事务在本次事务中,对自己未操作过的数据,进行了多次读取,结果出现了不一致、或者记录不存在的情况(破坏了一致性,update OR insert) 。

你可能感兴趣的:(Mysql 事务隔离级别要解决的问题)