美文网首页
面试篇-mysql隔离级别

面试篇-mysql隔离级别

作者: simperLv | 来源:发表于2022-07-07 00:09 被阅读0次

    面试时间 2002-07-05

    以下为博主真实面试内容

    1.数据库的四种隔离级别

    • 读未提交(Read Uncommitted):只处理更新丢失。如果一个事务已经开始写数据,则不允许其他事务同时进行写操作,但允许其他事务读此行数据。可通过“排他写锁”实现。
    • 读提交(Read Committed):处理更新丢失、脏读。读取数据的事务允许其他事务继续访问改行数据,但是未提交的写事务将会禁止其他事务访问改行。可通过“瞬间共享读锁”和“排他写锁”实现。
    • 可重复读取(Repeatable Read):处理更新丢失、脏读和不可重复读取。读取数据的事务将会禁止写事务,但允许读事务,写事务则禁止任何其他事务。可通过“共享读锁”和“排他写锁”实现。
    • 序列化(Serializable):提供严格的事务隔离。要求失去序列化执行,事务只能一个接一个地执行,不能并发执行。仅仅通过“行级锁”是无法实现事务序列化的,必须通过其他机制保证新插入的数据不会被刚执行查询操作的事务访问到。
    1. 说一下读未提交的场景呢,会导致什么问题
      场景如下图,最终导致了脏读。用户b读到小红age为20,但是实际age为10。
      image.png

    扩展:
    读提交场景,用户b第一次读到小红age为10,结果在同一事物中第二次读到为20。导致出现不可重复读的问题。

    image.png

    幻读场景,用户b第一次查询age=10的帐号只有小红,同一事物中第二次查询age=10,出现小红,小明。数据条数出现变化。感觉像是出现了幻觉。

    image.png

    持续面试中,更新ing

    相关文章

      网友评论

          本文标题:面试篇-mysql隔离级别

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