我有许多MySQL数据库,它们在某些时候会包含数据记录。
由于与此问题无关的多种原因,数据库保存在不同的服务器上。 显然,MySQL具有自动增量功能,可用于为这些记录分配唯一标识符。
由于数据不存储在单个数据库中,因此需要有一个父母'数据库,为数据库中的所有记录创建并返回UID,从而防止UID重复。
我可以通过使用父母来预见的缺点。数据库是:
- >其他SQL INSERT和SELECT查询,可能会影响查询速度。
- >父母的成本'服务器需要相当高的规格才能处理如此大量的并发连接。
鉴于这些事实,采取这种方法是否还有其他方法?这种系统设计是否常用?
答案 0 :(得分:0)
我可以想到两个看起来更合适的设计:
1)在每个数据库服务器上单独生成UID,只需基于它,例如机器的MAC或其他机器特定的。
2)如果您不打算进行扩展计划,可以使用自动增量作为您的ID,只需转移即可。像集群方法一样:比如说,你有3台服务器。第一个将获得每第三个ID,第二个ID,每秒ID等等。同样,您可以采用相同的方式根据您的ID获取数据,反之亦然