我最近read由于 InnoDB 在服务器重新启动时重新计算 AUTO_INCREMENT
值的方式,ID 列表高端的任何记录都可能会重用它们的 ID。
通常,这不是问题,因为删除用户时,与该 ID 关联的所有内容也会从其他表中删除。
但我故意让他们的论坛帖子成为孤儿,标记为“由 =User #123= 发布”,以便保留过去的对话。显然,如果重复使用 ID,这将是一个问题。
我以前从未遇到过这个问题,因为总是有足够多的新用户使 ID 不太可能以这种方式重复使用。然而,在我的新项目中,注册很少见,不活跃的用户删除也很频繁(特别是因为“开放 Alpha”帐户仅作为预览持续三天),这种 ID 重用现在已经发生了三对三。
我已经通过在别处保存正确的 AUTO_INCREMENT
值并使用它而不是依赖内部值来“解决”这个问题。有没有实际的方法让 InnoDB 记住实际的最后一个值?
最佳答案
5.5 文档建议将自动增量值存储在您已有的其他地方。
另一种解决方案是模拟 SEQUENCE,这样您就不会在实际表本身中使用自动递增。这一直是discussed on SO before和 again . MYSQL Performance blog mentions it .
另一个 MySQL 数据搞砸了其他 RDBMS 没有...
关于mysql - 如何在 InnoDB 中不回收 auto_increment ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10184494/