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

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

  1. mysql 脏读 不可重复读 幻读_mysql事务隔离级别/脏读/不可重复读/幻读详解

    一.四种事务隔离级别 1.1read uncommitted 读未提交 即:事务A可以读取到事务B已修改但未提交的数据. 除非是文章阅读量,每次+1这种无关痛痒的场景,一般业务系统没有人会使用该事务隔 ...

  2. 脏读,不可重复读,幻读区别

    脏读 脏读又称无效数据读出.一个事务读取另外一个事务还没有提交的数据叫脏读. 例如:事务T1修改了一行数据,但是还没有提交,这时候事务T2读取了被事务T1修改后的数据,之后事务T1因为某种原因Roll ...

  3. mysql不可重复读和重复读_MySql隔离级别:RU / RC / RR / S + 脏读 / 不可重复读 / 幻读 / 可重复读...

    MySQL 事务 本文所说的 MySQL 事务都是指在 InnoDB 引擎下,MyISAM 引擎是不支持事务的. 数据库事务指的是一组数据操作,事务内的操作要么就是全部成功,要么就是全部失败,什么都不 ...

  4. oracle 脏读,脏读 不可重复读 幻读

    序言 脏读.不可重复读.幻读这几个概念开始接触和学习的时候是在大学学习数据库系统的时候,那时候对这几个专业名词的理解停留在概念文字上,并没有真正使用过实践中,最近工作中涉及到这几个概念方面的知识,就来 ...

  5. 脏读,不可重复读,幻读区别和避免

    在了解脏读,不可重复度,幻读之前,首先要明白这三种情况的出现都是和数据库并发事务有关联的,如果所有的读写都按照队列的形式进行,就不会出现问题. 名词解析和解决方案 脏读 脏读又称无效数据读出(读出了脏 ...

  6. mysql系列:加深对脏读、脏写、可重复读、幻读的理解

    关于相关术语的专业解释,请自行百度了解,本文皆本人自己结合参考书和自己的理解所做的阐述,如有不严谨之处,还请多多指教. **不可重复读的重点是修改: **同一事务,两次读取到的数据不一样. 幻读的重点 ...

  7. 对脏写、脏读、不可重复度、幻读的理解笔记

    写在正文前面,以下仅MySQL小白进阶 用于记录对MySQL事务并发执行可能导致的4个问题的理解. 读https://www.cnblogs.com/CodeBear/p/12710670.html后 ...

  8. 脏读、重复读、幻读;

    脏读 所谓脏读是指一个事务中访问到了另外一个事务未提交的数据,如下图: 如果会话 2 更新 age 为 10,但是在 commit 之前,会话 1 希望得到 age,那么会获得的值就是更新前的值.或者 ...

  9. mysql可重复读和幻读的理解

    mysql可重复读和幻读的理解 可重复读和幻读的定义 最后总结 参考资料 很多教程和书籍对mysql的可重复读和幻读的解释都比较含糊,本文结合原理和其他的考证,深入分析下. 这里讨论的引擎是常用的In ...

  10. Mysql如何实现隔离级别 - 可重复读和读提交 源码分析

    Abstract 本文会(1) 演示Mysql的两种隔离级别.  (2) 跟着mysql的源代码来看看它是怎么实现这两种隔离级别的. Mysql的隔离级别 当有多个事务并发执行时, 我们需要考虑他们之 ...

最新文章

  1. WebApi接口 - 响应输出xml和json 转
  2. oracle数据本机自动备份
  3. jzoj1295-设计【差分约束系统,最短路】
  4. 设计合理的实验方案来研究阳离子改性棉织物与未改性棉的染色动力学性能
  5. POJ 1200 Crazy Search(RK)
  6. HTML+CSS+JS实现 ❤️ html5响应式图片轮播❤️
  7. Office 2007 小技巧
  8. 贪心算法,递归算法,动态规划算法比较与总结
  9. 程序员,你得选准跑路的时间!
  10. list stream().forEach
  11. C#:xml操作(待补充)
  12. 计算机网络—数据链路层的流量控制与可靠传输机制(思维导图)
  13. stl 向量_C ++ STL中的向量delete()和clear()
  14. 20190916每日一句
  15. wireshark分析UDP数据包
  16. 轻巧实用的web ssh工具使用笔记——WGCLOUD
  17. Python100天学习教程(Python学习视频_Python学习路线):Day01 初识Python
  18. 计算机重装后如何连接无线网络,电脑重装系统后怎么连接无线网络连接
  19. 【愚公系列】2021年11月 攻防世界-进阶题-MISC-053(很普通的数独)
  20. wincc随机数的生成

热门文章

  1. 智能电话机器人中的语音识别技术
  2. NetCMS修改之二:单击新闻附件,直接打开文件
  3. sntpc 2.7 国家授时中心工具
  4. 作文 我眼中的计算机1000字,我眼中的数学作文1000字
  5. countif怎么读(countif怎么读)
  6. centos Qihoo360/wayne 开发环境安装
  7. 4年多工作经验,工资给15000,你能接受吗?
  8. 基于QT+Mysql实现的疫情下低风险旅行模拟系统
  9. vMware 5.5 利用vcenter的powershell 批量创建虚拟机
  10. Gitcafe使用笔记