想象一下,有一个关系数据库系统(比如说 MySQL)集群在许多服务器(可能是 100 台服务器)中。在这个数据库系统中有一个名为“users”的表,“users”包含一个主键(例如 UINT)。
此用户 ID 在所有服务器中必须是唯一的。此用户 ID 可能会自动递增。
那么分布式数据库系统如何处理这些类型的问题呢?RDBMS 如何生成在所有服务器中唯一的唯一索引?
我不想要任何关于如何在 MySQL 中执行此操作的 SQL 代码,我只需要知道在这种情况下它是如何完成的。
[编辑]
两个答案听起来都不错。
这是另一种情况,我们以 StackOverflow 为例。这个问题的 URL 是http://stackoverflow.com/questions/18359434
。另一个 URL 是http://stackoverflow.com/questions/18359435
,它指向在这个问题之后提出的问题。显然 stackoverflow 有多个数据库服务器。但是问题的 ID 是自动递增的。
那么 StackOverflow 使用的方法是什么?
StackOverflow 获得了大量流量,alexa 和 Quantacast 排名都在 100 左右。