首页 > 解决方案 > 我应该如何设计多个相同的应用程序更新一个数据库

问题描述

我正在管理一个在线书店网站。为了高可用性,我设置了两个 Tomcat 实例来运行网站应用程序,它们是完全相同的程序,并且它们共享位于另一台服务器中的相同数据库。

我的问题是,当两个应用程序同时对数据库执行相同的更新/插入时,如何避免冲突或脏数据。

例如:update t_sale set total='${num}' where category='cs'如果有两个进程同时执行上面的sql会导致数据丢失。

标签: database

解决方案


如果您所说的“数据库”是指在 RDBMS(如 Oracle、DB2 或 SQL Server)上运行的精心设计的模式,那么数据库本身将通过在每次更新期间锁定部分数据库来防止您所谓的“冲突”交易。

您可以通过在数据库本身中添加检查子句和主外键结构等功能来防止“脏数据”进入数据库。


推荐阅读