MySQL事务隔离级别实现原理(和锁的关系)

本文介绍了MySQL中的事务隔离级别,包括并发问题、四种隔离级别(读未提交、读提交、可重复读、串行化)及其解决的问题。重点讲解了MVCC的实现原理,以及悲观锁和乐观锁的概念。在InnoDB存储引擎中,MVCC用于提高读已提交和可重复读的并发性能,ReadView是其关键组成部分。文章还探讨了不同隔离级别下的锁行为,包括快照读、当前读、Gap间隙锁和Next-key锁。
摘要由CSDN通过智能技术生成

隔离级别

并发带来的问题

脏读(dirty read)

如果一个事务读到了另一个未提交事务修改过的数据,如果另一个事务发生了回滚,那么该数据就是脏数据。

不可重复读(non-repeatable read)

如果一个事务只能读到另一个已经提交的事务修改过的数据,并且其他事务每对该数据进行一次修改并提交后,该事务都能查询得到最新值,即一个事务里两次查询一个数据的结果不一样。。

幻读(phantom read)

如果一个事务先根据某些条件查询出一些记录,之后另一个事务又向表中插入了符合这些条件的记录,原先的事务再次按照该条件查询时,能把另一个事务插入的记录也读出来。

注意

脏读侧重是未提交事务的数据。
而不可重复读和幻读都是读到了已提交的数据,但不可重复读重点在于update和delete,而幻读的重点在于insert。

四种隔离级别

MySQL事务隔离级别.png

实现原理

MVCC

首先,在介绍实现原理之前先简单的介绍一下MyS

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值