【发布时间】:2011-12-09 17:58:11
【问题描述】:
这里的问题与我的另一个问题有关......
我有数百万条记录,每条记录的 ID 都是自动递增的,不幸的是,有时生成的 ID 有时会被丢弃,因此 ID 之间有很多差距。
我想找到差距,并重新使用被放弃的 id。
在 MySQL 中执行此操作的有效方法是什么?
【问题讨论】:
-
如果您使用 INT 作为主键,您可以拥有超过 20 亿条记录。为什么要努力填补空白?你的号码用完了吗?我发现知道数字与添加记录的顺序相对应是有好处的。
-
与尝试在非常大的表上重用 ID 相比,将主键类型更改为 BIGINT(如果 INT 提供的 4 十亿值太短)可能会减少性能问题。跨度>
-
+1 以获得良好的反馈。我没有考虑过也许最好不要担心这些差距。
-
其他一些人在您有重用废弃 ID(在某些情况下属于死者的公民身份号码)的想法之前,这个“精明”的决定会给继承重用 ID 的人带来无穷无尽的问题.我不建议以任何方式做这样的事情。
标签: mysql recordset gaps-and-islands