目前我有一个数据库,其中 id 作为主要+自动增量值,另一个称为 refcode 的字段作为唯一值
我注意到当前最后一个id的增量值有很大的差距是762480,而表只包含16553行
有没有办法消除这种行为?我不想要不断插入旧值的 cron 脚本
我应该担心还是不担心
此问题可能是由删除记录引起的 - 如果数据库一致性设置良好,则一切正常。
但有时可能是这种差距是由失败的数据库事务引起的。如果差距像您一样大,我建议在代码中检查使用的数据库事务。
你不用担心。 auto_increment
键是连续的,但就表的整个历史记录而言,因此如果您要删除一堆记录,它不会回填旧键或重新索引整个表,因此没有间隙。
这就是
AUTO_INCREMENT
列的设计方式。AUTO_INCREMENT
的主要目标是始终是唯一的,而不是连续的。
如果是连续的,那么所有事务都需要串行执行(一个接一个),以避免可能的重复,可扩展性将成为问题。
所以你不必担心。