什么是脏读?

脏读又称无效数据的读出,是指在数据库访问中,事务T1将某一值修改,然后事务T2读取该值,此后T1因为某种原因撤销对该值的修改,这就导致了T2所读取到的数据是无效的,值得注意的是,脏读一般是针对于update操作的。

解决方法

mysql数据库定义了四种隔离级别:serializable:可避免脏读、不可重复读、虚读情况的发生。

repeatable read:可以避免脏读、不可重复读情况的发生。

read committed:可以避免脏读情况发生。

read uncommitted:最低级别,都会发生。注意:事务的隔离级别收到数据库的限制,不同的数据库支持的隔离级别不一定相同

脏读:修改时加排他锁,直到事务提交后才释放,读取时加上共享锁后(这样在事务1读取数据的过程中,其他事务就不会修改该数据),不允许任何事务操作该数据,只能读取,之后1如果有更新操作,那么会转换为排他锁,其他事务更无权参与进来读写,这样就防止了脏读问题

但是当事务1读取数据过程中,有可能其他事务也读取了该数据,读取完毕后共享锁释放,此时事务1修改数据,修改完毕提交事务,其他事务再次读取数据时候发现数据不一致,就会出现先不可重复读问题,所以这样不能够避免不可重复读问题

当执行不同的隔离级别时,可能会发生各种各样不同的问题。下面对他们进行总结并举例说明:

脏读发生在一个事务A读取了被另一个事务B修改,但是还未提交的数据。假如B回退,则事务A读取的是无效的数据。这跟不可重复读类似,但是第二个事务不需要执行提交。

mysql 脏数据是什么_什么是脏读?相关推荐

  1. mysql 查看数据表大小_关于MySQL 查询表数据大小的总结

    一:关于MySQL表数据大小 我们知道mysql存储数据文件一般使用表空间存储 当mysql使用innodb存储引擎的时候,mysql使用表存储数据分为共享表空间和独享表空间两种方式 ·共享表空间:I ...

  2. mysql禁止数据被删除_为什么MySQL不建议delete删除数据

    我负责的有几个系统随着业务量的增长,存储在MySQL中的数据日益剧增,我当时就想现在的业务方不讲武德,搞偷袭,趁我没反应过来把很多表,很快,很快啊都打到了亿级别,我大意了,没有闪,这就导致跟其Join ...

  3. navicat mysql 建表语句_Navicat for MySQL怎么/如何创建数据表?Navicat for MySQL创建数据表教程_斗蟹游戏网...

    [斗蟹攻略]Navicat for MySQL是针对MySQL数据库管理而研发的管理工具,创建数据表是其最基本操作,下面就由斗蟹小编介绍Navicat for MySQL创建数据表的方法. Navic ...

  4. mysql当数据改变时_当数据库里面的价格变化时,发送信息到企业微信中

    当数据库里面的价格变化时,发送信息到企业微信中 发布时间:2020-08-13 14:49:29 来源:ITPUB博客 阅读:100 作者:czxin788 mysql insert 触发器 添加in ...

  5. mysql 查数据 default无效_导入mysql数据的时候提示Field * doesn't have a default value解决方法...

    项目使用django+mysql 在linux中使用的是mysql5.7,导入数据提示:Field * doesn't have a default value 想要解决问题就需要知道在mysql5. ...

  6. mysql 脏数据查询_MySQL数据库02

    MySQL数据库 前言: 前面我们了解了什么是数据库,什么是MySQL数据库以及如何运用,接下来我们接着深入学习MySQL. (提前声明,以下所提供的事例不标准,仅供参考) 数据库的备份与还原: 备份 ...

  7. mysql 大量数据 更改索引_一文看懂ICP原理--MySQL用索引去表里取数据的一种优化...

    概述 今天主要介绍一下mysql的ICP特性,可能很多人都没听过,这里用一个实验来帮助大家加深一下理解. 一.Index_Condition_Pushdown Index Condition Push ...

  8. 修改mysql 表数据翻倍_【原创】关于MySQL表设计应该注意的问题(做了点修改)

    关于设计表时应该注意的问题 如有错误欢迎大家指出.这段时间在家里,做了点修正. 1.慎重选择表名. 有两种选择: 按照多数开发语言的命名规则.比如(myCustomer). 按照多数开源思想命名规则. ...

  9. mysql拉数据到本地_从mysql中dump数据到本地

    方法一:使用mysqldump命令,如: mysqldump -h10.90.6.237 -uf_insplat2car_r -P3306 -pxxxxxxxxx nbmp tb_tag_log -- ...

最新文章

  1. [Java工程师面试精选]Redis cluster集群模式的原理
  2. 因子分析累计方差贡献率要在多少_R语言进阶之因子分析
  3. 土地利用转移矩阵图怎么做_土地利用转移矩阵生成的几种方法
  4. python接收邮件内容启动程序_Python实现发送与接收邮件的方法详解
  5. python xpath语法-Python爬虫之XPath语法和lxml库的用法
  6. java.lang.NoClassDefFoundError: org/springframework/context/ApplicationContextAware
  7. 在阿里云Serverless K8S集群上部署Spark任务并连接OSS(详细步骤)
  8. ar android app,RakugakiAR安卓版
  9. [Android Studio]Failed to install Intel HAXM 问题解决
  10. 基于Opencv的手写字识别
  11. 【概率论】5-9:多项式分布(The Multinomial Distributions)
  12. 修改Apache配置文件开启gzip压缩传输
  13. svn 服务器中文件删除,svn中如何彻底删除一个文件
  14. 凤凰服务器系统,凤凰系统云服务器
  15. CAD .Net 开发-快速入门
  16. 多个excel文件合并到一个文件中的多个sheet表中
  17. 暑期实践第二十九天 2022-8-1
  18. java毕业设计演唱会门票订售及管理系统Mybatis+系统+数据库+调试部署
  19. FS2120双节锂电池保护 IC
  20. 软件测试面试题:软件验收测试包括正式验收测试、alpha测试、beta测试三种测试?

热门文章

  1. Android问题- adb不是内部或外部命令解决方法
  2. Native Crash .so crash分析方法
  3. 分享 嵌入式DVR怎样做远程监控
  4. webpack雪碧图实现(webpack管理小图标素材) - Vue2+VueRouter2+webpack+vue
  5. Zotero注释的PDF连同注释一起导出?
  6. 大作狂潮来袭!E3部分参展PC游戏作品名单公
  7. 数据可视化设计指南(信息图表篇)
  8. tslib ts_test显示界面,但触摸无反应,运行qt4命令触摸有反应
  9. 帕芬蒂组合秤使用说明书
  10. python中format的用法-python format用法详解