Spring事务的更新丢失
来源:互联网 发布:淘宝发布宝贝主图尺寸 编辑:程序博客网 时间:2024/05/22 15:49
更新丢失:
如果多个线程操作,基于同一个查询结构对表中的记录进行修改,那么后修改的记录将会覆盖前面修改的记录,前面的修改就丢失掉了,这就叫做更新丢失。
Serializable可以防止更新丢失问题的发生。其他的三个隔离级别都有可能发生更新丢失问题。Serializable虽然可以防止更新丢失,但是效率太低,通常数据库不会用这个隔离级别,所以我们需要其他的机制来防止更新丢失:
乐观锁和悲观锁不是数据库中真正存在的锁,只是人们在解决更新丢失时的不同的解决方案,体现的是人们看待事务的态度。
悲观锁:认为每一条sql语句都会出现更新丢失的情况
隔离级别不设置为Serializable,防止效率过低。
在查询时手动加上排他锁。
如果数据库中的数据查询比较多而更新比较少的话,悲观锁将会导致效率低下。
乐观锁:认为每一条sql语句都不会出现更新丢失的情况
在表中增加一个version字段,在更新数据库记录是将version加一,从而在修改数据时通过检查版本号是否改变判断出当前更新基于的查询是否已经是过时的版本。
如果数据库中数据的修改比较多,更新失败的次数会比较多,程序需要多次重复执行更新操作。
阅读全文
0 0
- Spring事务的更新丢失
- spring事务的更新丢失
- 事务的更新丢失
- 事务丢失更新的解决方案
- 事务概念以及更新丢失的解决
- Spring中事务的(特性,传播行为,隔离级别,不合理现象,丢失更新,案例..)
- 关于事务 --- 丢失更新
- 事务的概念和丢失更新的解决方式
- Spring 五个事务隔离级别和七个事务传播行为和数据读取出现的四个问题(丢失或覆盖更新、脏读、非重复读、幻想读)
- 丢失更新的问题
- 数据库事务的ACID隔离级中P0(脏写)和P4(更新丢失)的区别
- Spring 的事务,分布式事务。
- Spring的事务,什么是事务?
- 丢失更新
- Spring事务的学习
- Spring的事务
- 6.3 Spring的事务
- Spring事务的学习
- Spring事务的隔离级别
- 单调递增最长子序列nyoj17
- HDU
- spring的设计模式
- 深色背景黑底白字,蓝底白字课件材料“洗白”打印,ps批处理教程
- Spring事务的更新丢失
- 安卓 网站 开发工具, 颜色取值,图标,图片压缩,面试,各种开发工具
- HDU 6153 A Secret KMP
- 每日英语阅读(三十六)
- html5自带表单验证
- Spring MVC小案例
- js错误监控
- 红黑树
- 关于js中,原型对象,原型链,构造函数,实例之间关系的理解与区别