![如何跨多个数据中心生成唯一的自动增加 ID 字段?](https://linux22.com/image/647936/%E5%A6%82%E4%BD%95%E8%B7%A8%E5%A4%9A%E4%B8%AA%E6%95%B0%E6%8D%AE%E4%B8%AD%E5%BF%83%E7%94%9F%E6%88%90%E5%94%AF%E4%B8%80%E7%9A%84%E8%87%AA%E5%8A%A8%E5%A2%9E%E5%8A%A0%20ID%20%E5%AD%97%E6%AE%B5%EF%BC%9F.png)
我在三个不同的数据中心部署了多个 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