大数据WEB阶段(二十)更新丢失
来源:互联网 发布:电子音乐相册制作软件 编辑:程序博客网 时间:2024/05/22 15:27
更新丢失
一、更新丢失概述
- 两个并发的事务 , 基于同一个查询进行更新操作 ,后提交的事务忽略了先提交的事务对数据库的影响 , 结果造成了数据库操作失误的问题, 称之为更新丢失。
二、实例
- 重复充值
- 秒杀抢购
- 商品删除
三、解决方案
- 将数据库隔离级别提升为serializable级别防止更新丢失的问题
- 效率极低 , 不推荐使用
- 悲观锁
- 悲观的认为每次查询都会造成更新丢失问题 , 所以在查询时 , 手动添加排它锁 , 排斥后续其他事务的更新操作 。
- 在查询时关键查询语句后加 for update; 。
- 乐观锁
- 乐观的认为每次查询都不会有更新丢失问题 , 在修改时 , 人为地检测更新丢失的发生 。
- 在更新 操作时带上查询结果 , 把查询结果作为条件之一 , 如果影响行数为0 , 则发生更新丢失 , 此时需要回滚事务重新执行(是否需要重新执行看具体的场景)。
- 悲观锁和乐观锁都不是数据库中真正存在的锁 , 而是两种解决方案的思想
- 如果更新多而查询少, 使用悲观锁
- 如果更新少而查询多, 使用乐观锁
阅读全文
0 0
- 大数据WEB阶段(二十)更新丢失
- 大数据WEB阶段(六)MySql详解(二)
- 大数据WEB阶段 (十)Response、ServletConfig、ServletContext、资源跳转三种方式
- 大数据WEB阶段(三)CSS
- 大数据WEB阶段(四)JavaScript
- 大数据WEB阶段(五)jQuery
- 大数据WEB阶段(十九)Threadlocal
- 大数据WEB阶段(十三)JSP(二)JSP标签、EL表达式、JSTL
- 大数据WEB阶段Spring框架(二)简化配置的操作
- 大数据WEB阶段Spring框架 AOP面向切面编程(二)
- 大数据WEB阶段总结
- 大数据WEB阶段 (六)MySql详解(一)
- 大数据WEB阶段(一)XML文件的操作
- 大数据WEB阶段(九)Servlet+Request
- 大数据WEB阶段(十一)Ajax、URL编码
- 大数据WEB阶段(十四)JavaEE开发模式
- 大数据WEB阶段(十八)数据库事务
- 大数据WEB阶段Spring框架(四)Spring-MVC
- sparkwrapper
- 【STL】 priority_queue
- 同样是程序员,15K与40k的月薪差异在哪里?
- Axure8注册码
- 日志服务Flink Connector《支持Exactly Once》
- 大数据WEB阶段(二十)更新丢失
- IDEA+SLIKSVN配置以及使用教程
- Test
- 6轴机器人运动学正解,逆解2
- echarts柱状图、折线图求合,通过formatter回调函数自定义tooltip展示格式
- 导出数据库表结构
- 稀疏重建-->密集重建的过渡文件
- 【iOS】神坑!iOS8在xcode9.2图片显示异常
- 【C#编程最佳实践 三】接口使用实践