java 如何并发更新数据库同一条数据

java 如何并发更新数据库同一条数据,第1张

分2分情况:

一.普通的单应用并发,使用关键字synchronized就可以实现。

二.多应用或多台并发,这时在由于2者并非同一应用,使用synchronized并不能满足要求。此时,有下面几种方案

数据库行级锁,优点是简单粗暴,缺点是容易死锁,非数据库专业人事建议不使用。

写入请求分离成一个独立项目,这就回到了第一种情况,优点是实现技术难度低,缺点是高并发性能相对不是很高。

使用分布式事务管理,这个是目前高并发处理的最优方案了。

最后要说的没有差的方案,每个方案都有其适用环境,请根据自身需求选择对应方案。

等待事物结束才是正常

进程1执行了更新语句,但一直没有提交,进程2后来也执行了更新语句,并先提交,最后进程1提交。

这个例子在oracle中应该是不能成功的,他破坏了数据的读写一致性。在update 语句后紧跟commit 不就能实现你的需求么


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10017700.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存