更新丢失

一、更新丢失概述

  1. 两个并发的事务 , 基于同一个查询进行更新操作 ,后提交的事务忽略了先提交的事务对数据库的影响 , 结果造成了数据库操作失误的问题, 称之为更新丢失。

二、实例

  1. 重复充值
  2. 秒杀抢购
  3. 商品删除

三、解决方案

  1. 将数据库隔离级别提升为serializable级别防止更新丢失的问题

    1. 效率极低 , 不推荐使用
  2. 悲观锁
    1. 悲观的认为每次查询都会造成更新丢失问题 , 所以在查询时 , 手动添加排它锁 , 排斥后续其他事务的更新操作 。
    2. 在查询时关键查询语句后加 for update; 。
  3. 乐观锁
    1. 乐观的认为每次查询都不会有更新丢失问题 , 在修改时 , 人为地检测更新丢失的发生 。
    2. 在更新 操作时带上查询结果 , 把查询结果作为条件之一 , 如果影响行数为0 , 则发生更新丢失 , 此时需要回滚事务重新执行(是否需要重新执行看具体的场景)。
  4. 悲观锁和乐观锁都不是数据库中真正存在的锁 , 而是两种解决方案的思想
  5. 如果更新多而查询少, 使用悲观锁
  6. 如果更新少而查询多, 使用乐观锁

大数据WEB阶段(二十)更新丢失相关推荐

  1. 大数据WEB阶段(十二)会话技术、Cookie、Session及两者的区别

    会话技术 – Cookie与Session及其两者的区别 (一)会话技术 一.概述 1. 一个浏览器为了实现某一个功能对服务器产生了多次请求响应.从第一个请求开始访问服务器,会话开始,到最后一个页面访 ...

  2. 大数据WEB阶段 (十)Response、ServletConfig、ServletContext、资源跳转三种方式

    Response.ServletConfig.ServletContext.资源跳转三种方式 - (一)Response 一.Response概述 在doGet和doPost方法的参数中,HttpSe ...

  3. 大数据WEB阶段(十八)数据库事务

    数据库事务 一.概述 事务的概念 事务是指逻辑上的一组操作 , 组成这组操作的各个单元 , 要么全部成功 , 要么全部失败 . 如:银行转账.. 转账核心操作其实就是两条sql ,两条都执行成功才算成 ...

  4. 大数据WEB阶段(十六)JavaEE三大 核心技术之监听器Listener

    Listener监听器 一.概述 Servlet三大核心技术之一 Servlet.Filter.Listener Servlet技术规范中定义了八种监听器用来监听web应用开发中对应的事件. 监听器可 ...

  5. 大数据WEB阶段(十五)JavaEE三大核心技术之过滤器

    Filter过滤器 一.Filter 过滤器概述 Filter是JavaEE三大核心技术(Servlet . Filter . Listener)之一 FIlter作用是拦截对资源的访问 , 拦截下来 ...

  6. 大数据WEB阶段(十九)Threadlocal

    ThreadLocal 一.ThreadLocal概述 本地线程变量 本质上是一种利用线程的执行由程序的上游向下游传递信息的机制 Thread对象内置了一个Map来存取消息 , 但是这个 Map外界无 ...

  7. 大数据WEB阶段(十四)JavaEE开发模式

    JavaEE开发模式 零.目录 开发模式发展历程 MVC设计思想的出现 JavaEE经典三层架构 经典三层架构解耦 一.开发模式发展历程 Servlet是JavaEE开发中一种动态web资源开发技术 ...

  8. 2021年大数据Hadoop(二十二):MapReduce的自定义分组

    全网最详细的Hadoop文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 本系列历史文章 前言 MapReduce的自定义分组 需求 分析 实现 第一步: ...

  9. 2021年大数据Hadoop(二十九):​​​​​​​关于YARN常用参数设置

    全网最详细的Hadoop文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 本系列历史文章 前言 关于yarn常用参数设置 设置container分配最小内 ...

  10. 2021年大数据Hadoop(二十六):YARN三大组件介绍

    全网最详细的Hadoop文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 本系列历史文章 前言 Yarn三大组件介绍 ResourceManager No ...

最新文章

  1. 操作系统学习笔记 第五章:文件管理(王道考研)
  2. python执行系统命令后获取返回值的几种方式集合
  3. IOC和DI 控制反转和依赖注入
  4. live555 源码分析:MediaSever
  5. 刷新:重新发现.NET与未来
  6. 全美杰出的技术MBA专业
  7. Mac下图像标注工具labelImg的安装
  8. hibench测试出现问题--zookeeper
  9. 在哪里学python-学Python从哪里开始?
  10. 【CSP】第20届CCF CSP计算机软件能力认证划水贴
  11. 【Android笔记】Android引用第三方依赖包library报错解决方法
  12. js获取文件的后缀名
  13. 深度时空3D卷积神经网络用于交通预测(文末附数据链接)
  14. 生活随记-很有意思的评论
  15. 计算机科学 杂志 撤稿,哈佛教授2篇顶刊遭撤稿:相同样品花样“复用”,伪装成不同实验结果...
  16. vue+animation实现翻页动画
  17. 记一次酷狗音乐API的获取,感兴趣的可以自己封装开发自己的音乐播放器
  18. 吉林大学 十佳歌手 计算机科学与工程学院,贾海洋 - 吉林大学 - 计算机科学与技术学院...
  19. python 求向量模长(一范二范)
  20. Python--Opencv:errorFindContours supports only CV_8UC1 images when mode = CV_RETR_FLOODFILL otherw

热门文章

  1. 【开源】NodeJS仿WebApi路由
  2. object-c编程tips-timer
  3. 完美解决移动Web小于12px文字居中的问题
  4. 微软官方的SqlHelper
  5. 人人网SDK Demo项目学习获取系统Log类
  6. ISAPI_Rewrite规则
  7. C语言学习之利用指针将字符串a复制为字符串 b,然后输出字符串b
  8. 无风扇网站服务器,这款服务器采用无风扇设计
  9. Homework 8 测试计划
  10. Android Intent基本使用