MySQL表 - ID字段中的大间隙

时间:2014-11-18 02:45:04

标签: php mysql database

我是MySQL的新手,所以如果这个问题太“基本”,请原谅我。

我们将数据从另一个数据库导入MySQL。在其中两个表中,ID字段中存在较大间隙。例如,在一个表中,ID 1到5438具有较小的间隙,但接下来的几个ID是5823,6612,7880,8577,12541并且它继续像这样到54189.然后它跳转到441739936并且继续增加,具有大的间隙介于3872082950之间。我假设当我们开始向该表添加数据时,下一个ID将是3872082951(它设置为自动递增)。该表只有5234行。

我的问题是:

  1. 有这些大差距有什么问题吗?它会对查询响应时间产生负面影响吗?有这些大差距还有其他负面影响吗?
  2. 将它保留原样是否可以,或者我们最好不要重新编号ID,以便它们顺序无间隙?

3 个答案:

答案 0 :(得分:2)

允许在数据库中保留大的间隙没有任何问题或损失。对性能没有影响。自动递增ID必须是唯一的,但不需要它们是连续的。

答案 1 :(得分:0)

1)不,它不会

2)可能你不应该记住,id可以用来引用其他表中的数据行,所以如果你重新编号,你可以改变关系。

答案 2 :(得分:0)

如Bill所述,没有任何问题存在间隙,但要注意为字段设置正确的数据类型以应对值的大小(bigint等)。

您可以在此处阅读更多内容:http://dev.mysql.com/doc/refman/5.7/en/example-auto-increment.html并在此处找到数字数据类型:http://dev.mysql.com/doc/refman/5.7/en/numeric-types.html