美文网首页mysql
mysql Innodb在RR级别如何避免幻读

mysql Innodb在RR级别如何避免幻读

作者: 缄默的石头 | 来源:发表于2018-01-13 19:57 被阅读2833次
  1. 什么是幻读

    事务不是独立执行时发生的一种现象,例如第一个事务对一个表中的数据进行了修改,这种修改涉及到表中的全部数据行。 同时,第二个事务也修改这个表中的数据,这种修改是向表中插入一行新数据。那么,以后就会发生操作第一个事务的用户发现表中还有没有修改的数据行,就好象 发生了幻觉一样。

  2. mysql如何实现避免幻读

    • 在快照读读情况下,mysql通过mvcc来避免幻读。
    • 在当前读读情况下,mysql通过next-key来避免幻读
  3. 什么是mvcc

    mvcc全称是multi version concurrent control(多版本并发控制)。mysql把每个操作都定义成一个事务,每开启一个事务,系统的事务版本号自动递增。每行记录都有两个隐藏列:创建版本号和删除版本号

    • select:事务每次只能读到创建版本号小于等于此次系统版本号的记录,同时行的删除版本号不存在或者大于当前事务的版本号。

    • update:插入一条新记录,并把当前系统版本号作为行记录的版本号,同时保存当前系统版本号到原有的行作为删除版本号。

    • delete:把当前系统版本号作为行记录的删除版本号

    • insert:把当前系统版本号作为行记录的版本号

  4. 什么是next-key锁

    可以简单的理解为X锁+GAP锁

  5. 什么是快照读和当前读

    • 快照读:简单的select操作,属于快照读,不加锁。(当然,也有例外,下面会分析)

      • select * from table where ?;
    • 当前读:特殊的读操作,插入/更新/删除操作,属于当前读,需要加锁。

      • select * from table where ? lock in share mode;
      • select * from table where ? for update;
      • insert into table values (…);
      • update table set ? where ?;
      • delete from table where ?;

相关文章

  • MySQL Gap Lock引发insert语句堵住问题排查

    一、众所周知,MySQL在RR隔离级别下,会出现幻读的问题。出现幻读的前提条件:Innodb存储引擎,在RR隔离...

  • mysql Innodb在RR级别如何避免幻读

    什么是幻读事务不是独立执行时发生的一种现象,例如第一个事务对一个表中的数据进行了修改,这种修改涉及到表中的全部数据...

  • 系统原理-MVCC

    在SQL标准中,RR是无法避免幻读问题的,但是InnoDB实现的RR避免了幻读问题。RR解决脏读、不可重复读、幻读...

  • InnoDB如何在RR隔离级别下避免幻读

    InnoDB引擎,RR隔离级别下,并不能完全组织幻读的发生,想避免幻读,要保证gap锁是开启的,也就是innodb...

  • MySQL间隙锁、Next-Key Lock主要知识点

    总体来说,就是MySQL innoDB引擎要在RR隔离级别之下解决幻读的问题,所以引入了间隙锁。 在进行当前读的情...

  • mysql的幻读处理机制

    当前与快照读 当前与快照读 mysql的幻读处理机制 参考Mysql(Innodb)如何避免幻读我在mysql 8...

  • innodb中幻读与mvcc和间隙锁分析

    innodb中幻读的解决到底是依赖间隙锁还是mvcc产生了分歧。(事务隔离级别rr)面试官大大认为innodb就是...

  • InnoDB的MVCC如何解决幻读

    InnoDB默认的隔离级别是RR(可重复读),可以解决脏读和不可重复读,但是不能解决幻读问题。 什么是幻读? 事务...

  • 2020-04-29

    重温数据库知识 知识点问题 1.什么可重复读?2.什么幻读?3.为什么innodb在RR隔离级别下能解决幻读?4....

  • 事务隔离级别-学习

    不准确,待更新 (因为MySQL通过使用next-key锁避免了幻读->RR级别,同一个事务的相同查询,可以得到两...

网友评论

    本文标题:mysql Innodb在RR级别如何避免幻读

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