mysql之脏读、不可重复读、幻读的区别及说明

 更新时间:2022年07月20日 10:45:08   作者:WalkerShen  
这篇文章主要介绍了mysql之脏读、不可重复读、幻读的区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

mysql脏读、不可重复读、幻读的区别

脏读(Drity Read)

某个事务已更新一份数据,另一个事务在此时读取了同一份数据,由于某些原因,

前一个RollBack了操作,则后一个事务所读取的数据就会是不正确的。

例如:

  • 一开始小明将数据A修改成了B,之后这个时候小红读取了B
  • 但是由于小明将数据回滚了,修改成了A
  • 那么在这个时间点,小红拿的数据就是错误的了,正确的数据应该为A

不可重复读(Non-repeatable read)

在一个事务的两次查询之中数据不一致,这可能是两次查询过程中间插入了一个事务更新的原有的数据。

例如:

  • 小明一开始查询数据时A,但是后面查询的数据是B
  • 因为中途小红将数据改成了B
  • 这个时候就是两次查询数据不一致的问题

幻读(Phantom Read)

  • 在一个事务的两次查询中数据笔数不一致
  • 例如有一个事务查询了几列(Row)数据,而另一个事务却在此时插入了新的几列数据
  • 先前的事务在接下来的查询中,就会发现有几列数据是它先前所没有的

例如:

  • 一开始小明修改了全部数据,5条数据,然后小红在过程中新增了2条数据,然后小明再次查询的时候
  • 发现我不是已经改了全部的数据5条了吗,为什么又多出了两条多余的数据
  • 有点产生幻觉的意思,所以就是幻读了

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • mysql 5.7.17的最新安装教程图文详解

    mysql 5.7.17的最新安装教程图文详解

    mysql-5.7.17-winx64是现在最新版本的Mysql,这是免安装的,所以要进行些配置,下面通过本文给大家介绍mysql 5.7.17的最新安装教程图文详解,感兴趣的朋友一起学习吧
    2017-03-03
  • 两种mysql对自增id重新从1排序的方法

    两种mysql对自增id重新从1排序的方法

    本文介绍了两种mysql对自增id重新从1排序的方法,简少了对于某个项目初始化数据的工作量,感兴趣的朋友可以参考下
    2015-07-07
  • 大数据小内存排序问题如何巧妙解决

    大数据小内存排序问题如何巧妙解决

    文章介绍了大数据小内存排序的三种方法:数据库排序、分治法和位图法,数据库排序简单但速度慢,对设备要求高;分治法高效但实现复杂;位图法可读性差,但存储空间受限
    2025-01-01
  • MySQL数据库操作常用命令小结

    MySQL数据库操作常用命令小结

    这篇文章主要介绍了MySQL数据库操作常用命令小结,例如创建数据库、使用数据库、查看数据库、数据库编码操作等命令讲解,需要的朋友可以参考下
    2014-12-12
  • 浅谈Mysql中类似于nvl()函数的ifnull()函数

    浅谈Mysql中类似于nvl()函数的ifnull()函数

    下面小编就为大家带来一篇浅谈Mysql中类似于nvl()函数的ifnull()函数。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • MySQL创建索引/判断索引是否生效的问题

    MySQL创建索引/判断索引是否生效的问题

    这篇文章主要介绍了MySQL创建索引/判断索引是否生效的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • MySQL数据库查询进阶之多表查询详解

    MySQL数据库查询进阶之多表查询详解

    Mysql数据库是web开发中最常用的数据库之一,mysql多表查询是开发人员必备的技能,下面这篇文章主要给大家介绍了关于MySQL数据库查询进阶之多表查询的相关资料,需要的朋友可以参考下
    2022-04-04
  • mysql 5.7更改数据库的数据存储位置的解决方法

    mysql 5.7更改数据库的数据存储位置的解决方法

    随着MySQL数据库存储的数据逐渐变大,已经将原来的存储数据的空间占满了,导致mysql已经链接不上了。所以要给存放的数据换个地方,下面小编给大家分享mysql 5.7更改数据库的数据存储位置的解决方法,一起看看吧
    2017-04-04
  • MySQL的id关联和索引使用的实际优化案例

    MySQL的id关联和索引使用的实际优化案例

    这篇文章主要介绍了MySQL的id关联实际优化案例,关联和索引一直是MySQL常见的可优化大块儿,需要的朋友可以参考下
    2015-05-05
  • mysql where中如何判断不为空的实现

    mysql where中如何判断不为空的实现

    本文主要介绍了mysql where中如何判断不为空的实现,本文将针对这些空演示如何判断是否为空,以及如何写sql过滤,包括使用判空函数,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-03-03

最新评论