如何跨多个数据中心生成唯一的自动增加 ID 字段?

如何跨多个数据中心生成唯一的自动增加 ID 字段?

我在三个不同的数据中心部署了多个 mysql 服务器。现在我的数据库有几个带有自动增量 ID 列的表。我希望这三个数据中心的这些列在数据中心之间必须具有唯一的 ID。在 Mysql 中可以实现吗?或者我需要以编程方式生成这些列?

例如在数据中心 D1 中有一个表 T1,其 id 为 1,那么数据中心 D2 和 D3 就不能为表 T1 生成 id 1。

答案1

您可以使用 auto_increment_increment 和 auto_increment_offset 设置。每个服务器将具有不同的偏移值,并且它们每次都会增加足够的量以“跳过”并为其他服务器将生成的数字留出空间。这里有一些关于它的好文档:

http://dev.mysql.com/doc/refman/5.6/en/replication-options-master.html

相关内容