【问题标题】:Cross database UID management using a single parent database?使用单父数据库进行跨数据库 UID 管理?
【发布时间】:2017-03-13 08:55:02
【问题描述】:

我有许多 MySQL 数据库,它们有时会包含数据记录。

由于与此问题无关的多种原因,数据库保存在不同的服务器上。 显然 MySQL 具有自动增量功能,可用于为这些记录分配唯一标识符。

由于数据不存储在单个数据库中,因此需要有一个“父”数据库来创建和返回跨数据库的所有记录的 UID,从而防止 UID 重复。

我可以预见使用“父”数据库的缺点是:

-> 额外的 SQL INSERT 和 SELECT 查询,可能会影响查询速度。

->“父”服务器的成本需要相当高的规格才能处理如此大量的并发连接。

鉴于这些事实,采取这种方法还有其他弊端吗?这种系统设计常用吗?

【问题讨论】:

    标签: mysql database


    【解决方案1】:

    我能想到 2 个似乎更合适的设计:

    1) 在每个 DB 服务器上单独生成 UID,仅基于例如机器的 MAC 或其他机器特定的东西。

    2) 如果您不打算进行太多扩展,您可以使用自动增量作为您的 ID,只需换档即可。就像集群方法一样:比如说,你有 3 台服务器。第一个将获得每第三个 ID,第二个,每个第二个 ID,依此类推。同样,您可以以相同的方式根据您的 ID 获取数据,反之亦然

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-17
      • 1970-01-01
      • 2019-05-06
      • 1970-01-01
      相关资源
      最近更新 更多