关于脏写、脏读、不可重复读、幻读的理解

1.概念:

脏写:如果一个事务修改了另一个未提交事务修改过的数据,那就意味着发生了脏写(事务A修改还未提交的事务B所修改的变量,一旦事务B执行回滚操作,那么事务A所做的操作就是无效的)

脏读:如果一个事务读到了另一个未提交事务修改过的数据,那就意味着发生了脏读(事务A读取事务B还未提交的数据,一旦事务B执行回滚操作,那么事务A读取到的数据就是不存在的)

不可重复读:一个事务对一个变量的连续查询读取到不同的数据

幻读:在一个数据区间内,事务连续地按照一定条件查询数据时读取到了上次查询所没有的数据(强调新增,删除或者记录变少不算)

严重性:脏写》脏读》不可重复读》幻读

2.事务隔离级别

SQL标准中的四种隔离级别
4个隔离级别:

  • READ UNCOMMITTED:未提交读。
  • READ COMMITTED:已提交读。
  • REPEATABLE READ:可重复读。
  • SERIALIZABLE:可串行化。
    在这里插入图片描述
    此外Mysql中已经成功在可重复读隔离级别下解决了幻读问题,采用的是MVCC机制(多版本并发控制)
    而mvcc的实现机制讲简单一点就是通过
    1)ReadView
    2)undo log版本链
    来实现的

另外在补一篇个人觉得写得比较好的博客链接,好文就要多看:
http://www.zhai14.com/blog/strenghen-comprehension-on-dirty-read-and-phantom.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值