事务是并发控制的基本单位,保证事务的ACID特性是事务处理的重要任务,而事务ACID特性可能遭到破坏的原因之一就是多个事务对数据库的并发操作造成的。

并发操作带来的数据不一致性有:丢失修改,不可重复读,脏读

1. 丢失修改

两个事务T1和T2读入同一个数据并修改,T2提交的结果破坏了T1提交的结果,导致了T1的修改被丢失。典型例子:买飞机票或者火车票的例子。

2. 不可重复读

不可重复读指的是事务T1读取数据后,事务T2执行更新操作,使T1无法再现前一次读取的结果。
分为以下三种情况:
(1)事务T1读取了某一数据后,事务T2对其做了修改,当事务T1再次读数据时,得到了与前一次不同的值。
(2)事务T1读取了某一数据后,事务T2删除了其中的记录,当事务T1再次读数据时,发现某些记录神秘消失了。
(3)事务T1读取了某一数据后,事务T2插入了一些新的记录,当事务T1再次读数据时,发现多了一些记录。
后两种操作叫做幻影现象或幻读。

注:

不可重复读的重点是修改 : 
同样的条件 , 你读取过的数据 , 再次读取出来发现值不一样了 
幻读的重点在于新增或者删除 
同样的条件 , 第 1 次和第 2 次读出来的记录数不一样

3.脏读(读“脏”数据)

读“脏”数据只得是事务T1修改了某一数据,并将其写回磁盘,事务T2读取某一数据后,T1由于某种原因撤销了操作,恢复原值,这时T2读到的数据就和数据库中的数据不一致,称为读“脏”数据。

产生以上三种现象的原因是并发操作破坏了事务的隔离性。为了应对这些数据不一致性,主要技术主要有:封锁,时间戳,乐观控制法。

参考:

https://blog.csdn.net/when_less_is_more/article/details/62440192

https://www.cnblogs.com/phoebus0501/archive/2011/02/28/1966709.html

【转载】并发操作会带来哪些数据不一致性(数据库)相关推荐

  1. django mysql数据同步_[django同步数据库]Django去操作已经存在数据的数据库

    数据库,各种表结构已经创建好了,甚至连数据都有了,此时,我要用Django管理这个数据库,ORM映射怎么办??? Django是最适合所谓的green-field开发,即从头开始一个新的项目 但是呢, ...

  2. 黄聪:第2章 并发操作的一致性问题 (2)

    2.2 SQL Server 2000+ADO.NET实现并发控制 2.2.1 并发一致性问题 常见并发并发一致性问题包括:丢失的修改.不可重复读.读脏数据.幻影读(幻影读在一些资料中往往与不可重复读 ...

  3. 数据库的并发操作通常会带来三个问题

    数据库的并发操作通常会带来三个问题 丢失更新:当一个事务修改du了数据zhi,并且这种修改还没有dao还没有提交到zhuan数据库中时shu,另外一个事务又对同样的数据进行了修改,并且把这种修改提交到 ...

  4. 并发操作的不一致性问题

    包括:丢失修改.不可重复读.读脏数据 产生原因:并发操作破坏了事务的隔离性.并发控制就是要用正确的方式调度并 发操作,使一个用户事务的执行不受其他事务的干扰,从而避免造成数据的不一 致性. 实例1:事 ...

  5. 数据库-事务并发操作问题及并发的控制

    事务并发操作出现几种问题 所谓事务,是用户定义的一个数据库操作序列,是数据库环境中的逻辑工作单元, 是一个不可分割的整体. 事务的这个4个特性简称为ACID特性,事务ACID特性可能遭到破坏的因素有: ...

  6. mysql数据库限流方案_用于对MySQL数据库的并发操作进行控制的方法及装置的制造方法_3...

    的数据库操作特点,预先设置的所述第一限流类型可以不同于本实施例中的设置,同样可以实现本申请的技术方案,也在本申请的保护范围之内. [0103]步骤102-3:判断MySQL数据库的threads_ru ...

  7. 大数据-NoSQL数据库:HBase【基于Zookeeper/HDFS的分布式、高并发、可扩展的NoSQL数据库;支持“十亿行”ד百万列”海量数据的实时随机读写;仅支持单表查询;不擅长数据分析】

    HBase适合场景:单表超千万,上亿,且高并发! HBase不适合场景:主要需求是数据分析,比如做报表.数据量规模不大,对实时性要求高! HBase的查询工具有很多,如:Hive.Tez.Impala ...

  8. 【学习SQL数据库】并发操作引起的数据库不一致

    文章目录 丢失修改 不可重复读 幻影现象 读脏数据 原因 丢失修改 事务1和事务2读取同一数据后,事务1对数据进行修改,事务2的提交破环了事务1的提交,导致事务1对数据的修改丢失. 假设A为4 时间序 ...

  9. 数据库并发操作下的:排他锁(X),共享锁(S),死锁,活锁

    丢失数据修改:两个事务T1,T2读入同一数据并进行修改,但只能保存最后执行事务的修改结果所以第一个事务修改的结果就自动后一个事务被覆盖!!! 读"脏"数据:产生原因:数据在执行修改 ...

最新文章

  1. SQL Server 负载均衡集群(转)
  2. linux 文件理解,对linux中文件系统的理解
  3. 95-136-041-源码-Operator-TwoInputStreamOperator
  4. c语言第八章函数程序设计,C语言程序设计-第八章 函数.ppt
  5. MAC 下MySQL常用命令
  6. 浅谈数据与网络安全--对网络安全的基础知识了解
  7. 网络安全之黑客入侵的步骤
  8. python中随机函数import random作用_python学习之随机函数random
  9. 计算机黑屏启动超慢,电脑开机慢黑屏时间长怎么解决
  10. 汇智动力学员最新就业喜报,最高薪资16K!
  11. java企业工程项目管理系统平台源码(三控:进度组织、质量安全、预算资金成本、二平台:招采、设计管理)
  12. 致:同年代的童真童鞋们
  13. 程序员常用十大算法(四):KMP算法 与 暴力匹配算法 解决字符串匹配问题
  14. python redis连接_Python连接Redis连接配置
  15. Vue实战:简易布局Dome
  16. MySQL教程——MySQL注释:单行注释和多行注释
  17. flex布局---flex-wrap属性,决定排列是否换行
  18. 激战2电信服务器哪个最多,《激战2》电信一区服务器玩家实力排行榜
  19. A1490. osu!(乔明达)|概率与期望|卡常|矩阵
  20. 共赢云时代——用友能源耕云计划全国行河南站圆满结束

热门文章

  1. 利用uiautomator2刷金币
  2. vm磁盘映射 不能启动_软网推荐:网盘变身本地磁盘
  3. QT配置OpenCV(二):成功
  4. PyCharm配置QTDesigner和ui2py工具
  5. Kafka单节点多broker的部署和使用
  6. 使用hive完成统计分析功能
  7. Hadoop发行版本选择
  8. 面向对象的特征有哪些方面?
  9. 在线颜色拾取器 - 资源篇
  10. filezilla:阿里云 win10 服务器文件传输(上传和下载)的配置教程