美文网首页
数据库事务的四种隔离级别及脏读、幻读、不可重复读【通俗版】

数据库事务的四种隔离级别及脏读、幻读、不可重复读【通俗版】

作者: 大panda | 来源:发表于2019-02-14 09:52 被阅读0次
    • 未提交读(Read Uncommitted)
      A事务只要修改数据,其他事务就可以看到
      优点:并发能力最强
    • 提交读(Read Committed)
      A事务修改数据,但未提交,其他事务不能读到A事务未提交的数据
      多数数据默认的事务等级
    • 可重复读(Repeatable Read)
      A事务不会修改其他事务未提交的数据
    • 串行化(Serializable)
      事务按顺序执行
      性能低,很少使用

    以上四种级别为逐渐递增方式,如下:√: 可能发生 ×: 不会发生

    脏读 不可重复读 幻读
    未提交读
    提交读 x
    可重复读 x x
    串行化 x x x

    mysql默认可重复读,支持四种
    Oracle默认为读写提交,只支持读写和串行化


    • 脏读
      A事务访问数据并修改,但没提交。B事务访问并使用了这个数据
    • 不可重复读
      A事务多次读同一数据,事务未结束,但B事务修改并提交了数据,此时A事务读到数据不一致
    • 幻读
      A事物查询后,B事物添加一数据后提交,A事物两次查询的数据不一样

    相关文章

      网友评论

          本文标题:数据库事务的四种隔离级别及脏读、幻读、不可重复读【通俗版】

          本文链接:https://www.haomeiwen.com/subject/aguseqtx.html