首页 > 其他分享 >测试技能提升篇——脏读、不可重复读、幻读的区别

测试技能提升篇——脏读、不可重复读、幻读的区别

时间:2023-09-27 10:32:01浏览次数:37  
标签:事务 读取 幻读 重复 脏读 数据 技能


测试技能提升篇——脏读、不可重复读、幻读的区别_不可重复读

 

脏读

事务A读取了事务B更新的数据,然后B回滚操作,那么A读取到的数据是脏数据

不可重复读

事务 A 多次读取同一数据,事务 B 在事务A多次读取的过程中,对数据作了更新并提交,导致事务A多次读取同一数据时,结果不一致。

脏读与不可重复读的区别

在于前者读到的是其他事务未提交的数据,后者读到的是其他事务已提交的数据。

可重复读

与不可重复读相对应的就是可重复读,当使用可重复读隔离级别时,A事务在执行期间会锁定该事务以任何方式引用的所有行,即使事物B修改了A事物引用的行,A也不会读到!这样就不会导致读取统一数据时结果不一致的问题。

幻读

系统管理员A将数据库中所有学生的成绩从具体分数改为ABCD等级,但是系统管理员B就在这个时候插入了一条具体分数88的记录,当系统管理员A改结束后发现还有一条记录没有改过来,就好像发生了幻觉一样,这就叫幻读。幻读就是你一个事务用一样的 SQL 多次查询,结果每次查询都会发现查到一些之前没看到过的数据。注意,幻读特指的是你查询到了之前查询没看到过的数据。

不可重复读的和幻读区别

二者很容易混淆,不可重复读侧重于修改,幻读侧重于新增或删除。解决不可重复读的问题只需锁住满足条件的行,解决幻读需要锁表。

本质

其实,脏写、脏读、不可重复读、幻读,都是因为业务系统会多线程并发执行,每个线程可能都会开启一个事务,每个事务都会执行增删改查操作。然后数据库会并发执行多个事务,多个事务可能会并发地对缓存页里的同一批数据进行增删改查操作,于是这个并发增删改查同一批数据的问题,可能就会导致我们说的脏写、脏读、不可重复读、幻读这些问题。

标签:事务,读取,幻读,重复,脏读,数据,技能
From: https://blog.51cto.com/liwen629/7621245

相关文章

  • 无限的技能
    无限的技能一、详情如果心中有目标,就能立即将新学到的技能付诸应用,课程开始正是草拟目标的大好时机。将想法记录下来是学习的好习惯,这样每当需要开始新项目时(大创,竞赛,毕业设计等)都可参考它们。如果你有无穷多种编程技能,密码技术,硬件设计技术,你打算开发什么样的密码系统或密码应......
  • Vue3 组件基础:轻松掌握前端开发新技能!
    基本实例这里有一个Vue组件的示例://创建一个Vue应用constapp=Vue.createApp({})//定义一个名为button-counter的新全局组件app.component('button-counter',{data(){return{count:0}},template:`<button@click="count++">......
  • 还不知道数据类岗位的相关技能和职责吗?涤生大数据告诉你(一)
    很多同学在求职中对数据类岗位傻傻分不清楚,投递简历的时候胡乱投递,本篇文章给大家讲讲数仓开发,etl开发,数据开发,数据治理工程师,BI工程师以及数据运维工程师这些数据类岗位的工作职责以及和数仓开发的区别。同时为了大家更加深入地了解各岗位的区别,也给大家讲解了一下这些岗位在日常......
  • immerjs:React开发必会技能
    immerjs:React开发必会技能龙骑士尹道长 ​关注 2人赞同了该文章我们都知道React追求的泛式是数据不可变,一般情况下state或者props改变才进入render阶段;如果我们创建的state是一个一般数据类型,他就是一个不可变的值,如果需要改变我们需要重新创建一个state......
  • 无限的技能
    1.密码管理器:帮助用户安全地管理和存储各种密码和敏感信息。组成:前端用户界面、密码加密算法、密钥管理、数据库存储。功能:生成强密码、加密保存密码、自动填充密码、多因素身份验证、密码共享。2.端到端加密的即时通讯应用:保护用户的通讯内容免受窃听和篡改。组成:客户端应......
  • 脏读、幻读、不可重复读图解
    mysql事务隔离级别MySQL提供了不同的隔离级别,包括:READUNCOMMITTED(读取未提交):最低的隔离级别,不提供任何数据一致性保证,可能会出现不可重复读问题。READCOMMITTED(读取已提交):默认隔离级别,保证了一个事务不会读取到其他未提交事务的数据修改,但仍可能出现不可重复读问题。R......
  • [Unity] 基于 ParadoxNotion FlowCanvas 插件实现技能
    游戏中的技能总是有各种各样的逻辑比如持续性范围技能,魔兽争霸的暴雪风链式技能,博德之门的闪电链持续技能,博德之门的昼明术等等,这些技能都有各自特殊的逻辑,如何让这些技能有一个通用的配置方法像是RPGBuilder会有一个技能编辑器,里面提供了尽可能多的选择来配置技能编辑器......
  • 招股书更新9版终上市,飞沃科技能否躲过风电红利后的黯淡?
    文丨熔财经作者丨文泽碳达峰、碳中和成为主旋律目标下,作为可再生能源主力的风电产业迎来了发展的“黄金时代”。与新能源相关的上下游企业也赚的“盆满钵满”。在此背景下,飞沃科技(301232.SZ)历经4轮问询,更新9版招股书终于登陆资本市场。从业务布局与业绩表现来看,飞沃科技具备“小......
  • 上海选择中等职业技术学校来获取所需的技能
    上海中等职业技术学校一直致力于培养未来的专业人才,为城市的发展提供坚实的支持。根据最新数据,2021年上海中等职业技术学校在校学生数量达到了10.89万人,招生数为3.87万人,学校数量为87所,而毕业人数为3.19万人。这些数据突显了学校在职业教育领域的卓越成就。中等职业技术学校在校......
  • 从零开始学习Vue3路由,提升你的前端开发技能
    Vue3是当前最流行的前端框架之一,它提供了许多方便的功能和工具,其中路由(Router)就是其中之一。本文将介绍如何在Vue3中使用路由。安装和使用VueRouter首先,我们需要安装VueRouter。在终端中输入以下命令:npminstallvue-router@next--save接下来,我们需要创建一个路由实例。在......