我最近read由于InnoDB在服务器重新启动时重新计算AUTO_INCREMENT
值,ID列表高端的任何记录都可能重新使用其ID。
通常情况下,这不是问题,因为删除用户时,与ID相关的所有内容也会从其他表中删除。
但我故意将他们的论坛帖子孤立,标记为“发布者 =用户#123 = ”,以便保留过去的对话。显然,如果重新使用ID,这将是一个问题。
之前我从来没有遇到过这个问题,因为总有足够的新用户不太可能以这种方式重复使用ID。然而,在我的新项目中,注册是罕见且非活动的用户删除频繁(特别是因为“Open Alpha”帐户仅作为预览持续三天),并且此类ID重用现在已经发生了三次。
我通过在其他位置保存AUTO_INCREMENT
的正确值并使用该值而不依赖于内部值来“解决”此问题。是否有实际的方法让InnoDB记住实际的最后一个值?
答案 0 :(得分:1)
5.5文档建议将自动增量值存储在其他地方。
另一种解决方案是模拟SEQUENCE,这样就不会在实际表本身中使用自动增量。这是discussed on SO before和again。 MYSQL Performance blog mentions it。
另一个其他RDBMS没有的MySQL数据......