我的主机将MySQL Auto_increment列更改为两个

时间:2013-05-18 15:01:33

标签: mysql

在我的主机最近进行了一次更改之后,所有auto_increment列都递增了两个。在通过电子邮件向我的主人发送电子邮件后,这就是他们所说的:

  

此网站位于我们新的负载均衡共享平台上。这个   预计在新集群上会出现这种情况。自动增量不会   实际上会影响表的性能或工作,你可以   仍然对表进行计数并使用中的任何增量列   同样的方式。只要您直接检查数据库,您就会看到   这些都递增了两个。

     

最终,这种行为将像我们一样应用于我们所有的服务器   在我们的整个平台上执行此更新。

我想知道的是:他们说的是对的吗?在我看来,自动增量列应该增加一个而不是两个!!

这会导致一些旧网站出现一些问题,使用它来生成订单号等。

然而,我所拥有的其他所有内容将继续正常工作,它只是有点烦人。

2 个答案:

答案 0 :(得分:3)

忽略主机的细节,如果一段代码依赖于自动增量总是一个接一个地没有漏洞,那么代码是错误的,因为这绝不是保证。

唯一的保证是该列不会有重复项,新行将具有该列的下一个序列值;这通常是最后一个值+ 1,但不能保证 - 保证它将是 next ,因此它不会返回并填充例如。

答案 1 :(得分:1)

这在多主MySQL设置中很常见,可以防止主键发生冲突。

如果要同时向两个负载平衡服务器添加一行,他们都会尝试插入auto_increment ID,例如51.您将收到错误并且复制会中断。

因此,在双服务器设置中,服务器1插入1,3,5,7等,服务器2插入2,4,6,8等。