我有 1 亿行,而且它变得太大了。 我看到很多差距。 (因为我删除,添加,删除,添加。)
我想用自动增量来填补这些空白。 如果我重置它..有什么危害吗?
如果我这样做,它会填补空白吗?
mysql> ALTER TABLE tbl AUTO_INCREMENT = 1;
最佳答案
可能非常危险,因为您可以再次获得一个已经在使用中的号码。
您的建议是再次将序列重置为 1。它只会产生 1,2,3,4,5,6,7,.. 等等,不管这些数字是否在间隙中。
更新: 根据 Martin 的回答,由于涉及的危险,MySQL 甚至不会让您这样做。它会将计数器重置为至少当前值 + 1。
再想一想差距的存在会导致什么真正的问题。通常这只是一个审美问题。
如果数字太大,切换到更大的数据类型(bigint 应该足够了)。
关于mysql - 重置自动增量有什么坏处吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2106237/