MySQL事务

      • 1、 查看事务状态
      • 2、 gap lock 解决 RR隔离级别的幻读
      • 3、 半一致性读
      • 4、 脏读
      • 5、 不可重复读
      • 6、 幻读

1、 查看事务状态

select * from information_schema.innodb_trx\G


2、 gap lock 解决 RR隔离级别的幻读


3、 半一致性读

  • semi-consistent read 是 RC 与 RR 的结合。

  • update语句如果读到一行已经加锁的记录,此时InnoDB返回这行记录的最新版本,并两次判断此版本是否满足update的where条件,满足的话,加锁,更新数据。

  • semi-consistent read 发生的条件:

    • <= RC级别
    • 或者 innode_locks_unsafe_for_binlog=1时(8.0之前)
    • 并且只能是update请求(不含insert、delete)
  • 半一致性读是为了提高没索引时的update效率。


4、 脏读

读到未提交的数据


5、 不可重复读

RC级别在一个事务中,同一条记录,读两次,结果不一样。


6、 幻读

rc级别,读两次,结果记录数不一致。

你可能感兴趣的:(MySQL事务)