替代MySQL中的自动递增主键以进行多主复制

时间:2011-05-10 13:38:55

标签: mysql primary-key auto-increment

我推测的webapp需要横向扩展,并且从一开始就需要一对MySQL服务器(可能在发布后很快就会上升到一个以上)。 由于自动增量主键不合适,我想知道人们使用什么替代品。

带有日期的东西是最有意义的,但是如果你下降到毫秒级别并假设一个三位数的服务器ID,这是一个非常大的数字:

现在

sssyymmddhhmmssmicros001110510143622123456 - 加上你可以在开头用另一个数字来简化前导零(或许是数据中心ID)。

纪元时间缩短了它,但只是一点点。

还有什么?

3 个答案:

答案 0 :(得分:7)

我认为您正在寻找的是UUID(通用唯一标识符)。在MySQL中,你可以生成UUID函数uuid()。

SELECT uuid();

UUID看起来像这样8cb1764a-7b0d-11e0-aaa7-00270e0f8070 ......我知道!它很长但是有效。

答案 1 :(得分:1)

简短的回答:你不想要多主复制,也许不是mysql(看看cassandra)。但是,您需要包含主ID的序列。您可以使用单独的表来模拟序列。看看PEAR如何模仿它们。例如。

答案 2 :(得分:1)

我认为您正在寻找的是GTID。它们是独一无二的。在MySQL中使用多主复制。 a link for more details