iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >幻读和不可重复读本质区别
  • 224
分享到

幻读和不可重复读本质区别

2024-04-02 19:04:59 224人浏览 薄情痞子
摘要

幻读和不可重复读本质区别是什么?这个问题可能是我们日常工作经遇见到的。通过这个问题,希望你能收获更多。如果你不看答案,不知道是否有把握回答这个问题?让我们来试试。1) "不可重复读" 是

幻读和不可重复读本质区别是什么?这个问题可能是我们日常工作经遇见到的。通过这个问题,希望你能收获更多。如果你不看答案,不知道是否有把握回答这个问题?让我们来试试。

1) "不可重复读" 是指在一个事务内,多次读同一数据。在这个事务还没有结束时,另外一个事务也访问该同一数据。那么,在第一个事务中的两次读数据之间,由于第二个事务的修改,那么第一个事务两次读到的的数据可能是不一样的。这样就发生了在一个事务内两次读到的数据是不一样的,因此称为是不可重复读。

例如,一个编辑人员两次读取同一文档,但在两次读取之间,作者重写了该文档。当编辑人员第二次读取文档时,文档已更改。原始读取不可重复。如果只有在作者全部完成编写后编辑人员才可以读取文档,则可以避免该问题

要避免这种情况,通常可以用 set tran isolation level repeatable read 来设置隔离级别,这样事务A 在两次读取表T中的数据时,事务B如果企图更改表T中的数据(细节到事务A读取数据)时,就会被阻塞,知道事务A提交! 这样就保证了,事务A两次读取的数据的一致性。

2)幻读是指当事务不是独立执行时发生的一种现象,例如第一个事务对一个表中的数据进行了修改,这种修改涉及到表中的全部数据行。同时,第二个事务也修改这个表中的数据,这种修改是向表中插入一行新数据。

那么,以后就会发生操作第一个事务的用户发现表中还有没有修改的数据行,就好象发生了幻觉一样。

例如,一个编辑人员更改作者提交的文档,但当生产部门将其更改内容合并到该文档的主复本时,发现作者已将未编辑的新材料添加到该文档中。如果在编辑人员和生产部门完成对原始文档的处理之前,任何人都不能将新材料添加到文档中,则可以避免该问题。

还是上面的例子,事务A要两次读取表T的中数据,虽然设置 repeatable read 可以防止事务B对数据进行修改,但是事务B却可以向表T中插入新的数据。

如何防止这个问题,我们可以考虑设置最高的事务隔离级别 set tran isolation level serializable。于是乎,事务B就只能乖乖的等待事务A的提交,才能想表T中插入新的数据,从而避免了幻读!

关于幻读和不可重复读的区别就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果喜欢这篇文章,不如把它分享出去让更多的人看到。

您可能感兴趣的文档:

--结束END--

本文标题: 幻读和不可重复读本质区别

本文链接: https://www.lsjlt.com/news/34466.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 不可重复读和幻读的区别是什么
    本篇文章和大家了解一下不可重复读和幻读的区别是什么。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。不可重复读和幻读区别:不可重复读的重点是修改;同样的条件,第1次和第2次读取的值不一样。幻...
    99+
    2024-04-02
  • 脏读、幻读、不可重复读有哪些区别
    这篇文章主要介绍脏读、幻读、不可重复读有哪些区别,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!脏读、幻读、不可重复读的区别:1、脏读就是指当一个事务正在访问数据,并且对数据进行了修改...
    99+
    2024-04-02
  • 详解MySQL的脏读、幻读和不可重复读
    MySQL的脏读、幻读和不可重复读是数据库事务处理中的三种常见问题,它们都涉及到数据的一致性和并发性。本文将详细介绍这三种问题,并给出相应的解决方案和示例代码。 一、脏读(Dirty Read) 脏读是指一个事务读取了另一个事务未提交...
    99+
    2023-09-29
    mysql 数据库
  • 一文搞懂MySQL脏读,幻读和不可重复读
    目录MySQL 中事务的隔离1.READ UNCOMMITTED2.READ COMMITTED3.REPEATABLE READ4.SERIALIZABLE前置知识1.事务相关的常...
    99+
    2024-04-02
  • MySQL的不可重复读和幻读是什么意思
    这篇文章主要介绍“MySQL的不可重复读和幻读是什么意思”,在日常操作中,相信很多人在MySQL的不可重复读和幻读是什么意思问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”My...
    99+
    2024-04-02
  • MySQL可重复读级别可以解决幻读问题吗
    这篇文章主要介绍了MySQL可重复读级别可以解决幻读问题吗,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。引言之前在深入了解数据库理论的时候,...
    99+
    2024-04-02
  • Mysql事务并发脏读+不可重复读+幻读详解
    目录Mysql的事务隔离级别脏读不可重复读幻读总结Mysql的事务隔离级别 Mysql有四种事务隔离级别,这四种隔离级别代表当存在多个事务并发冲突时,可能出现的脏读、不可重复读、幻...
    99+
    2024-04-02
  • MySQL事务隔离级别以及脏读、幻读、不可重复读的示例
    小编给大家分享一下MySQL事务隔离级别以及脏读、幻读、不可重复读的示例,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!推荐(免费...
    99+
    2024-04-02
  • MySQL的可重复读级别能解决幻读问题吗
    本篇内容介绍了“MySQL的可重复读级别能解决幻读问题吗”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!引言...
    99+
    2024-04-02
  • mysql数据库事务隔离级别及脏读、不可重复读、幻读是什么
    mysql数据库事务隔离级别及脏读、不可重复读、幻读是什么?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!一、数据库事务正确...
    99+
    2024-04-02
  • Mysql数据库事务的脏读幻读及不可重复读详解
    目录一、什么是数据库事务二、事务的ACID原则1. 原子性(Atomicity)2. 一致性(Consistency)3. 持久性(Durability)4. 隔离性(Isolati...
    99+
    2024-04-02
  • MySQL脏读和幻读的区别有哪些
    MySQL脏读和幻读是数据库中的两种并发问题,它们的区别如下:1. 脏读(Dirty Read):脏读指的是在一个事务中读取了另一个...
    99+
    2023-10-12
    MySQL
  • mysql脏读和幻读的区别是什么
    MySQL中的脏读(Dirty Read)是指一个事务在未提交前读取了另一个事务尚未提交的数据。而幻读(Phantom Read)则...
    99+
    2023-08-19
    mysql
  • Mysql的可重复读解决了幻读问题吗
    针对快照读(普通 select 语句),是通过 MVCC 方式解决了幻读,因为可重复读隔离级别下,事务执行过程中看到的数据,一直跟这个事务启动时看到的数据是一致的,即使中途有其他事务插入了一条数据,是查询不出来这条数据的,所以就很...
    99+
    2023-09-01
    mysql 数据库 java
  • mysql解决不可重复读的方法
    这篇文章将为大家详细讲解有关mysql解决不可重复读的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。mysql解决不可重复读的方法:采用了mvcc多版本并发控制,mv...
    99+
    2024-04-02
  • 解决HttpServletRequest 流数据不可重复读的操作
    目录前言ServletRequest 数据封装原理Spring MVC 对不同类型数据的封装读取参数时出现的问题具体的问题可以细分成多种情况:最佳解决方案tips:总结附录代码前言 ...
    99+
    2024-04-02
  • 数据库不可重复读的原因有哪些
    数据库不可重复读的原因主要有以下几点:1. 并发事务:当多个事务并发执行时,一个事务读取了某一行数据,而另一个事务在该事务提交之前修...
    99+
    2023-10-12
    数据库
  • Gateway网关自定义拦截器的不可重复读取数据问题
    目录Gateway网关自定义拦截器的不可重复读取数据统一网关Gateway一、为什么需要网关二、搭建网关服务三、路由断言工厂四、路由过滤器五、跨域问题处理Gateway网关自定义拦截...
    99+
    2024-04-02
  • gin自定义中间件解决requestBody不可重复读问题(最新推荐)
    先直接上代码 r := gin.Default() // 注册中间件,使body可以重复读取 r.Use(func(context *gin.Context) { all, ...
    99+
    2023-05-18
    requestBody不可重复读 gin自定义中间件 gin requestBody不可重复读
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作