Experience 数据库脏读
脏数据
浏览器 应用程序+数据库
对数据库进行更新操作,除了异常之外还有更新不成功,就是条件查询的时候没有查询到数据
一 浏览器 应用程序
1 A和B把数据都读出来了,A对数据进行了更新并提交成功了
这个时候B看到的数据跟数据库里的不一致,但是B这个时候
也对数据进行更新,程序设计的时候应该不能让B更新成功
并给出提示信息更新失败,这个之前已经说过在表上加字段
可以解决这个问题。
1.1 上面这种情况只是对单条数据进行的操作
如果有多条数据同时更新怎么办,有的数据更新成功了,有的数据没有更新成功
例如,给一个团队分配多个用户的时候
A,B都把用户给查询出来了,A给团队p分了10个人 ,B给团队分了 20个人 有重复了
A先提交,用for循环进行更新每个人的团队状态字段
这个时候B提交会覆盖掉A的数据,所以会出现问题
怎么解决,还是用上面的方法在用户表里加lock字段更新做+1操作
由于是for循环更新不是batch更新所以可以记录哪些数据返回的是1,哪些返回的是0
返回时0的可以封装起来,返回到前台,用于显示哪些更新失败了。
如果采用这种方式,那么团队人数的数量,是更新成功之后的数量,并不是传进来的
20人就20人。
如果是batch处理的话,两处操作,那么只能返回更新成功的条数。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
二 数据库
2 A正在更新数据,B正在读数据,两个动作同时进行
例如A正在置a1这条记录的删除状态为1,但是事物并没有提交
这个时候B正在读a1这条记录,
如果B这个时候读出了这条数据且B更新事物成功了
那么B这个时候就不应该显示出这条数据,与数据库不一致了,脏读了。
如果A回滚了还好说点,是正确的
(oracle默认的是不可提交读,就是读的是之前的数据?)
这种情况怎么处理?
这个就要用事物来进行控制了,表设计和程序是控制不了的
当B对数据进行更新的时候,应该锁定这条数据,等B更新完
事物提交或者回滚后,A才可以读出这条数据,B未提交之前A一致处在
等待状态。
具体怎么做? 看spring事物控制?
分享到:
相关推荐
- **Experience**:用户经验数值,反映用户游戏总局数,可通过调整经验值获取方式来调整策略。 - **AllLogonTimes**:用户成功登录的总次数。 - **MemberOverDate**:会员到期日期,若用户登录时间晚于该日期,则...
- Experience:用户经验数值,由游戏时间累积。 - LoveLiness:用户魅力值。 - UserRight:用户权限标志,参照权限对照表。 - MasterRight:管理员权限标志。 - ServiceRight:服务权限标志,由运营商定制。 - ...
《GeForce Experience:驱动更新与优化游戏体验》 在当今的数字时代,电脑硬件的更新迭代速度极快,特别是对于图形处理单元(GPU)来说,不断优化的驱动程序是提升性能和兼容性的关键。NVIDIA的GeForce Experience...
### Avaya Flare Experience:革新企业通信与协作 #### 一、引言 随着现代企业的快速发展,有效的通信与协作已成为企业提升工作效率的关键因素之一。然而,传统的通信工具往往难以满足日益增长的需求。Avaya Flare...
GeForce_Experience新版
11. **Experience**:记录用户游戏经历,可基于此设计升级或奖励机制。 12. **AllLogonTimes**:统计用户登录次数,有助于分析用户活跃度。 13. **MemberOverDate**:标记会员资格有效期,自动化处理会员状态更新。 ...
例如,作者可能会展示一个基于Spring框架的Web应用的构建过程,包括如何配置数据库连接、实现业务逻辑层以及构建RESTful API等。这里,作者会细致讲解框架中各个组件的作用以及它们是如何协同工作的。这种从整体架构...
【数据库实战】MySQL DBA 数据库工程师实战经验 (Practical experience of MySQL DBA database engineers) 文件列表: 01-mysql-consul (0, 2018-02-05) 01-mysql-consul\mysql_consul_高可用.md (14550, 2018-02-05)...
GeForce_Experience_v3.13.1.30
最后,经验获取类(Experience Acquisition)描述了获得经验的方法,这可能涉及到打怪、完成任务、参与活动等多种方式,对于玩家的成长系统至关重要。 综上所述,小游戏数据库的分析涉及了玩家、角色、技能、战斗和...
"JAVA-experience.rar_experience"这个压缩包文件,正如其名,是一位有经验的学长为正在学习Java的大学生们精心准备的学习心得分享。下面,我们将深入探讨这份资源可能包含的重要知识点,以及如何有效地利用这些经验...
2021年华南农业大学数据库课设-快递管理系统 本快递系统我采用vue2编写,历时差不多2个月。实现了移动端的快递速运系统,本系统前后端分离。本资源包括,课程的答辩PPT、课程报告、源代码、图片、视频讲解。全都为...
《深入探索"eXperience_Release.zip":WindowBlinds主题的魅力与应用》 在数字化时代的今天,个性化桌面体验已经成为许多用户追求的一种潮流。WindowBlinds,作为一款强大的Windows操作系统主题定制工具,允许用户...
### 3D Experience R2017X 在 Windows 2012 Server 上的安装指南 #### 一、概述 3D Experience R2017X 是一款强大的三维设计、模拟及协作平台,广泛应用于制造业等多个领域。本篇文档旨在为用户详细介绍如何在 ...
nvidia_geforce_experience_3.19.0.94-22411驱动版本,解决nvidia_geforce_experience_3.20.3.63-25266驱动无法使用滤镜问题
显示驱动GeForce_Experience_v3.16.0.140 好吧,一定要
geforce_experience 升级包。
ID(id)、应聘者姓名(ij_name)、性别(ij_sex)、年龄(ij_age)、出生日期(ij_birthday)、应聘职位(ij_job)、专业(ij_speciality)、工作经验(ij_experience)、学历(ij_teachSchool)、毕业学校(ij_afterSchool)、联系电话...
Title: Designing the User Experience of Game Development Tools Author: David Lightbown Length: 188 pages Edition: 1 Language: English Publisher: A K Peters/CRC Press Publication Date: 2015-02-18 ISBN-...
- `experience`:工作经验。 - `study_effort`:在校所学专业。 - `school`:毕业学校。 - `tel`:联系电话。 - `email`:电子邮箱。 - `create_time`:应聘信息创建时间。 - `content`:详细经历。 3. **...