PHP& Mysql InnoDB在顺序插入之间的自动增量值中存在差距

时间:2014-12-25 16:39:31

标签: php mysqli innodb

目前我有一个数据库,其id为主要+ autoincreamental值,另一个字段称为refcode为唯一值

我注意到当前最后一个id为762480的增量值存在很大差距,而表只包含16553行

有没有办法消除这种行为?我不希望继续插入旧值的cron脚本

我应该担心还是不担心

3 个答案:

答案 0 :(得分:0)

你不应该担心。 auto_increment键是顺序的,但就表的整个历史记录而言,所以如果你要删除一堆记录,它不会回填旧键或重新索引整个表,这样就没有差距。

答案 1 :(得分:0)

AUTO_INCREMENT列的工作原理是什么。AUTO_INCREMENT的主要目标是始终是唯一的,而不是连续的。

如果它是连续的,那么所有交易都需要连续执行(一个接一个)以避免可能的重复,并且可扩展性将成为一个问题。

所以你不必担心它。

答案 2 :(得分:0)

此问题可能是由删除记录引起的 - 如果设置了数据库一致性,那么一切正常。

但有时可能是数据库事务失败导致的这种差距。如果差距如此大,我建议在代码中检查使用过的数据库事务。