并发数据库连接

时间:2015-01-27 03:29:51

标签: sql database concurrency corruption connection

如果两个或三个连接同时修改同一个表(甚至是同一行),SQL数据库如何防止发生损坏?

我在考虑在具有多个基于服务器的负载平衡前端的数据库上可能发生的理论上的可能性:

  • 服务器1访问中央数据库
  • 服务器2访问中央数据库
  • 服务器1获取中央数据库中用户X的信息
  • 服务器2获取中央数据库中相同用户X的信息
  • 服务器1在完成一些工作后可以在中央数据库中为用户X设置新数据(可能是做或不做事)
  • 服务器2为中央数据库中的用户X设置新数据

此时用户X将包含无效条目,因为它基本上覆盖了服务器1对同一用户所做的工作。

我在考虑不断检查同一张桌子和行,看看它是否最近被修改但仍然没有停止相同的表&在检查的时间和在检查之后写入数据库的时间之间被其他东西修改的行。

我只是想知道拥有数百万用户的大型数据库是如何工作的,以及它们如何分布在数十个或数百个单独的服务器上。

1 个答案:

答案 0 :(得分:0)

我正在寻找数据库事务完整性。

阅读的好链接:

technet.microsoft.com/en-us/library/ms173763.aspx

http://en.wikipedia.org/wiki/Isolation_%28database_systems%29#Isolation_Levels.2C_Read_Phenomena_and_Locks

由于