美文网首页
事务的并发问题

事务的并发问题

作者: 寂静的春天1988 | 来源:发表于2020-11-08 17:42 被阅读0次

    事务并发可能会引起以下几种问题
    1、脏读
    事务B读到了事务A未提交的事务。

    2、幻读


    幻读.png

    新增一个用户也会发生幻读,同理。

    3、不可重复读


    不可重复读.png

    和幻读类似,不过是对不可重复读是对数据的更新,而幻读是对数据的新增或者删除。

    4、第一类丢失更新(回滚丢失)


    回滚丢失.png

    事务A的回滚覆盖了事务B的修改操作,造成了数据异常。

    5、第二类丢失更新(提交丢失)


    提交丢失.png

    事务A的提交覆盖了事务B的修改操作,造成了数据异常。和回滚丢失很类似,不过是事务提交覆盖了数据。

    为了解决事务的并发问题,mysql提供了四种隔离级别。


    隔离级别.png

    Repeatable Read(可重读):这是MySQL的默认事务隔离级别,mysql自身解决了幻读和第一类丢失更新的问题。所以mysql只存在提交丢失。

    怎么解决提交丢失问题?
    1、悲观锁:select ... for update

    2、乐观锁:使用版本号机制。

    存留的疑问:mysql怎样解决的幻读和第一类丢失更新的问题?

    相关文章

      网友评论

          本文标题:事务的并发问题

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